This is an archive of the discontinued LLVM Phabricator instance.

[GlobalISel][AArch64] Legalize + select some llvm.ctlz.* intrinsics
ClosedPublic

Authored by paquette on Feb 12 2019, 3:52 PM.

Details

Summary

Legalize/select llvm.ctlz.* for types that the importer can grab easily.

Add select-ctlz to show that we actually select them. Update arm64-clrsb.ll and arm64-vclz.ll to show that we perform valid transformations in optimized builds, and document where GISel can improve.

Diff Detail

Repository
rL LLVM

Event Timeline

paquette created this revision.Feb 12 2019, 3:52 PM
aemerson added inline comments.Feb 18 2019, 1:41 PM
test/CodeGen/AArch64/arm64-vclz.ll
127 ↗(On Diff #186555)

Why do we fall back here?

aemerson accepted this revision.Feb 18 2019, 3:14 PM

LGTM, v2i64 ctzl isn't natively supported. Support to implement that via scalarization can be done at a later date.

This revision is now accepted and ready to land.Feb 18 2019, 3:14 PM
paquette updated this revision to Diff 187277.Feb 18 2019, 3:25 PM

Adding support for scalarizing was 2 LOC, so meh, let's just do it here.

This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptFeb 18 2019, 3:35 PM