1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/ThinLTO/X86
Roman Lebedev 347c3e4e9c [InstCombine] Always try to invert non-canonical predicate of an icmp
Summary:
The actual transform i was going after was:
https://rise4fun.com/Alive/Tp9H
```
Name: zz
Pre: isPowerOf2(C0) && isPowerOf2(C1) && C1 == C0
%t0 = and i8 %x, C0
%r = icmp eq i8 %t0, C1
  =>
%t = icmp eq i8 %t0, 0
%r = xor i1 %t, -1

Name: zz
Pre: isPowerOf2(C0)
%t0 = and i8 %x, C0
%r = icmp ne i8 %t0, 0
  =>
%t = icmp eq i8 %t0, 0
%r = xor i1 %t, -1
```
but as it can be seen from the current tests, we already canonicalize most of it,
and we are only missing handling multi-use non-canonical icmp predicates.

If we have both `!=0` and `==0`, even though we can CSE them,
we end up being stuck with them. We should canonicalize to the `==0`.

I believe this is one of the cleanup steps i'll need after `-scalarizer`
if i end up proceeding with my WIP alloca promotion helper pass.

Reviewers: spatel, jdoerfert, nikic

Reviewed By: nikic

Subscribers: zzheng, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83139
2020-07-04 18:12:04 +03:00
..
Inputs [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
alias_import.ll
alias_internal.ll
alias_resolution.ll
autoupgrade.ll
builtin-nostrip.ll
cache-config.ll
cache-icall.ll
cache-import-lists.ll
cache-typeid-resolutions.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
cache.ll
callees-metadata.ll
cfi-devirt.ll [InstCombine] Always try to invert non-canonical predicate of an icmp 2020-07-04 18:12:04 +03:00
cfi-distributed.ll
cfi-icall-only-defuse.ll
cfi-icall.ll
cfi.ll
crash_debuginfo.ll
deadstrip.ll
debuginfo-compositetype-import.ll
debuginfo-cu-import.ll
devirt2.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_alias.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_available_externally.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_external_comdat_same_guid.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_local_same_guid.ll
devirt_multiple_type_test.ll [WPD] Allow virtual calls to be analyzed with multiple type tests 2020-06-24 10:51:24 -07:00
devirt_promote_legacy.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_promote.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_single_hybrid.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_vcall_vis_hidden.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt_vcall_vis_public.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt-after-icp.ll Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00
devirt.ll [WPD] Provide a way to prevent functions from being devirtualized 2020-03-09 14:05:15 +03:00
diagnostic-handler-remarks-with-hotness.ll
diagnostic-handler-remarks.ll
dicompositetype-unique2.ll
dicompositetype-unique-alias.ll
dicompositetype-unique.ll
distributed_import.ll
distributed_indexes.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
dot-dumper2.ll
dot-dumper-full-lto.ll
dot-dumper.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
drop-debug-info.ll
dsolocal_dllimport.ll
emit_imports.ll
empty_module_with_cache.ll
empty-module.ll [LTO] Suppress emission of empty combined module by default 2020-05-04 18:31:09 -07:00
export.ll
funcimport2.ll
funcimport_alwaysinline.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
funcimport-debug.ll
funcimport-stats.ll
funcimport-tbaa.ll
funcimport.ll
function_entry_count.ll
globals-import-blockaddr.ll
globals-import-const-fold.ll
globals-import.ll
guid_collision.ll
import_opaque_type.ll
import-constant.ll [ThinLTO] Disable "Always import constants" due to compile time issues 2020-01-30 10:12:48 -08:00
import-ro-constant.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
index-const-prop2.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-alias.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-cache.ll
index-const-prop-comdat.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-dead.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-full-lto.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-gvref-pie.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-gvref.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-ldst.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-linkage.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-O0.ll
index-const-prop.ll
internalize.ll
lazyload_metadata.ll
linkonce_aliasee_ref_import.ll
linkonce_odr_unnamed_addr.ll
linkonce_resolution_comdat.ll
lit.local.cfg
llvm.used.ll
load-store-caching.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
local_name_conflict_var.ll
local_name_conflict.ll
merge-triple.ll
module_asm2.ll
module_asm_glob.ll
module_summary_graph_traits.ll Fix [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle() 2020-03-01 19:35:58 +02:00
newpm-basic.ll
nodevirt-nonpromoted-typeid.ll Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP"" 2020-03-02 14:02:13 -08:00
noinline.ll
not-internalized.ll
personality-local.ll
personality.ll
pr35472.ll
prefix_replace.ll
printer.ll
reference_non_importable.ll
referenced_by_constant.ll [ThinLTO] Disable "Always import constants" due to compile time issues 2020-01-30 10:12:48 -08:00
save_objects.ll
section.ll
strong_non_prevailing.ll Reland "[llvm-nm] Don't report "no symbols" error for files that contain symbols" 2020-01-17 10:08:42 -08:00
thinlto-internalize-doublepromoted.ll
thinlto-internalize-used.ll
tli-nobuiltin.ll
weak_externals.ll
weak_resolution_single.ll
weak_resolution.ll
writeonly2.ll
writeonly-with-refs.ll
writeonly.ll