D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 12849 - pmovmskb instruction cannot store to 64-bit registers
Summary: pmovmskb instruction cannot store to 64-bit registers
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: dmd (show other issues)
Version: D2
Hardware: x86_64 All
: P1 normal
Assignee: No Owner
URL:
Keywords: iasm, pull, SIMD
Depends on:
Blocks:
 
Reported: 2014-06-03 23:27 UTC by briancschott
Modified: 2014-06-05 21:24 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description briancschott 2014-06-03 23:27:48 UTC
void main()
{
	ulong a = 0xff;
	ulong b;
	asm 
	{
		movq XMM0, a;
		pmovmskb RAX, XMM0;
		mov b, RAX;
	}
	assert (b == 1);
}

bug.d(8): Error: bad type/size of operands 'pmovmskb'

This is perfectly valid according to the Intel documentation.
Comment 2 github-bugzilla 2014-06-05 21:24:49 UTC
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/b41f78f5ecf4687bf1c026a472c5a341c17bed1e
Fix issue 12849: pmovmskb instruction cannot store to 64-bit registers

https://github.com/D-Programming-Language/dmd/commit/addae511ef59fb6f970e10c5fe10c12f6442f128
Merge pull request #3621 from Hackerpilot/issue-12849

Fix issue 12849: pmovmskb instruction cannot store to 64-bit registers