arm integer to float assignment broken

Summary

assigning integer to float gives the wrong result

System Information

  • Operating system: Android
  • Processor architecture: ARM
  • Compiler version: 3.2.3 (2021/10/24)

Example Project

var
  ai: int64;
  a: double;
  bi: integer;
  bs: single;
begin
  ai := 1000000;
  a := ai;
  writeln(a);
  bi := 1000000;
  bs := bi;
  writeln(bs);
end.

What is the current bug behavior?

It prints

 8.7960930222080000E+018
 2.623881250E+05

What is the expected (correct) behavior?

It should print:

 1.0000000000000000E+006
 1.000000000E+06
Edited by FPK