This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Improve codegen of store lane 0 instructions by directly storing the subregister.
ClosedPublic

Authored by ab on Dec 23 2014, 11:31 AM.

Details

Summary

Split out of D6202.

For 0-lane stores, we used to generate stuff like:

	fmov w8, s0
	str w8, [x0, x1, lsl #2]

instead of:

	str s0, [x0, x1, lsl #2]

To correct that: for store lane 0 patterns, directly match to STR <subreg>0

Byte-sized instructions don't have the special case for a 0 index, because FPR8s are defined to have untyped content.

Diff Detail

Repository
rL LLVM

Event Timeline

ab updated this revision to Diff 17602.Dec 23 2014, 11:31 AM
ab retitled this revision from to [AArch64] Improve codegen of store lane 0 instructions by directly storing the subregister..
ab updated this object.
ab edited the test plan for this revision. (Show Details)
ab added a reviewer: jmolloy.
ab added a subscriber: Unknown Object (MLST).
jmolloy accepted this revision.Jan 5 2015, 2:34 AM
jmolloy edited edge metadata.

LGTM!

lib/Target/AArch64/AArch64InstrInfo.td
1894 ↗(On Diff #17602)

There looks to be an indentation problem here.

This revision is now accepted and ready to land.Jan 5 2015, 2:34 AM
This revision was automatically updated to reflect the committed changes.