fpc/tests/test/cg/tmmxshift.pp
florian 09e205b7b0 * test is i386 only
git-svn-id: trunk@38396 -
2018-03-02 21:57:44 +00:00

47 lines
826 B
ObjectPascal

{ %CPU=i386 }
{$mmx+}
uses
mmx;
var
wa,wb : tmmxword;
ca,cb : tmmxcardinal;
i : longint;
begin
for i:=low(wa) to high(wa) do
wa[i]:=2;
wb:=default(tmmxword);
wb[0]:=2;
wa:=wa shl 3;
for i:=low(wa) to high(wa) do
if wa[i]<>16 then
halt(1);
wa:=wa shl wb;
for i:=low(wa) to high(wa) do
if wa[i]<>64 then
halt(1);
wa:=(wa shr 3) shr wb;
for i:=low(wa) to high(wa) do
if wa[i]<>2 then
halt(1);
for i:=low(ca) to high(ca) do
ca[i]:=2;
cb:=default(tmmxcardinal);
cb[0]:=2;
ca:=ca shl 3;
for i:=low(ca) to high(ca) do
if ca[i]<>16 then
halt(1);
ca:=ca shl cb;
for i:=low(wa) to high(ca) do
if ca[i]<>64 then
halt(1);
ca:=(ca shr 3) shr cb;
for i:=low(ca) to high(ca) do
if ca[i]<>2 then
halt(1);
writeln('ok');
end.