This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] Improve handling of some BUILD_VECTOR nodes
ClosedPublic

Authored by nemanjai on Jan 13 2020, 3:27 PM.

Details

Summary

An analysis of real world code turned up a number of patterns with BUILD_VECTOR of nodes resulting from operations on extracted vector elements for which we produce poor code. This addresses those cases. No attempt is made for completeness as that would entail a large amount of work for something that there is no evidence of in real code.

Diff Detail

Event Timeline

nemanjai created this revision.Jan 13 2020, 3:27 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 13 2020, 3:27 PM

Unit tests: pass. 61798 tests passed, 0 failed and 781 were skipped.

clang-tidy: unknown.

clang-format: pass.

Build artifacts: diff.json, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

nemanjai updated this revision to Diff 237812.Jan 13 2020, 4:29 PM

The shift amount for one of the patterns was wrong for little endian.

Unit tests: pass. 61799 tests passed, 0 failed and 781 were skipped.

clang-tidy: unknown.

clang-format: pass.

Build artifacts: diff.json, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml

lei accepted this revision as: lei.Feb 7 2020, 5:39 AM
lei added a subscriber: lei.

LGTM

This revision is now accepted and ready to land.Feb 7 2020, 5:39 AM
amyk accepted this revision.Feb 15 2020, 7:37 PM
amyk added a subscriber: amyk.

I think this also LGTM.

This revision was automatically updated to reflect the committed changes.