inline bug, wrong value is calculated (x86 + [U]Int64)

FPC [main]

app.pas:

program app;
{$mode objfpc}

uses SysUtils;

function func(value: UInt64): UInt64; inline;
begin
  Result := value;
  Result := Result shl 32;
end;

var
  Result: UInt64;

begin
  Result := func($ABCD);

  WriteLn(IntToHex(Result)); // $0000000000000000

  ReadLn;
end.

Compilation: fpc.exe -Twin32 -Pi386 app.pas

Output: 0000000000000000