Delphi 10.4.2 Community Edition で

// 63 になる
WriteLn(CountTrailingZeros64(UInt64($8000000000000000)));

// 64 になる
var AValue: UInt64 := UInt64($8000000000000000);
WriteLn(CountTrailingZeros64(AValue));

というように違う結果が返されます。
AValueがUInt32より大きいと64になるようです。
使い方が間違っているのでしょうか?