This is an archive of the discontinued LLVM Phabricator instance.

[DAG] Fold zext into loads across an and/or/xor operation
AbandonedPublic

Authored by benmxwl-arm on Nov 10 2022, 12:41 PM.

Details

Reviewers
None
Summary

This patch adds a new fold:

(zext (xor/and/or (load x), (load y)))
 ->
(xor/and/or (zextload x), (zextload y))

Which enables further optimizations that allows simplifying quite a
few memcmp cases (specifically on AArch64).

(This is largely a test/proof of concept right now)

Diff Detail

Event Timeline

benmxwl-arm created this revision.Nov 10 2022, 12:41 PM
benmxwl-arm requested review of this revision.Nov 10 2022, 12:41 PM
Herald added a project: Restricted Project. · View Herald TranscriptNov 10 2022, 12:41 PM
benmxwl-arm edited the summary of this revision. (Show Details)Nov 10 2022, 12:44 PM
benmxwl-arm abandoned this revision.Nov 11 2022, 7:41 AM