fpc/tests/test/tasm3.pp
Jonas Maebe ab9d68ae3e * always use RIP-relative addressing in x86-64 assembler code
* abort if there's a warning (warnings for wrong/dangerous pic
    will be added in a later commit)

git-svn-id: trunk@22239 -
2012-08-25 15:12:24 +00:00

28 lines
513 B
ObjectPascal

{ %CPU=x86_64 }
{ %opt=-vw -Sew }
// Basic test for 3-operand SIMD instructions with rip-relative operand
{$codealign varmin=16}
{$codealign constmin=16}
type
tvec=array[0..3] of longword;
var
t: tvec = ($00010203, $04050607, $08090a0b, $0c0d0e0f);
{$asmmode att}
function test: word; assembler; nostackframe;
asm
pshufd $0b11100100,t(%rip),%xmm0 // direct copy
pcmpeqd t(%rip),%xmm0
pmovmskb %xmm0,%eax
end;
begin
if test<>65535 then
Halt(1)
else
writeln('ok');
end.