This is an archive of the discontinued LLVM Phabricator instance.

[X86] add an exedepfix entry for movq == movlps == movlpd (refiled)
ClosedPublic

Authored by spatel on Mar 29 2015, 12:39 PM.

Details

Summary

This is a 1-line patch (with a TODO for AVX because that will affect even more regression tests).

I've stared at the Intel docs for the various movq versions, but it's not clear to me exactly what the difference is between the 0xD6 (MOVPQI2QImr) and 0x7E (MOVSDto64mr) opcodes.

Diff Detail

Repository
rL LLVM

Event Timeline

spatel updated this revision to Diff 22856.Mar 29 2015, 12:39 PM
spatel retitled this revision from to [X86] add an exedepfix entry for movq == movlps == movlpd (refiled).
spatel updated this object.
spatel edited the test plan for this revision. (Show Details)
spatel added a subscriber: Unknown Object (MLST).

Thanks for looking at this Sanjay - you might want to check with Chandler as he has a pair of outstanding execution domain patches. D7402 is the most relevant one here but there is D7401 as well.

test/CodeGen/X86/stack-folding-int-sse42.ll
96 ↗(On Diff #22856)

Please can you add a domain fix to keep this on the integer domain - search for 'add forces execution domain'

spatel updated this revision to Diff 22891.Mar 30 2015, 9:22 AM
spatel added a reviewer: chandlerc.

Updated patch:
Removed stack-folding-int-sse42.ll from affected tests. It was updated by Simon here:
http://llvm.org/viewvc/llvm-project?view=revision&revision=233553

Also, adding Chandler to reviewers. Is a 'let ExeDomain =' change preferred in place of or in addition to the exedeps table change?

LGTM, shout if you want any help getting the tests fixed for the AVX version as well.

This revision was automatically updated to reflect the committed changes.

Thanks, Simon - checked in at r235014.

The AVX tests aren't bad; I just wanted someone to confirm that I wasn't choosing the wrong movq opcode here.:)