llvm-project
acafa250 - [LoongArch] Remove inaccurate LASX conversion pattern and use [X]VFFINT.S.L instead (#207107)

Commit
2 days ago
[LoongArch] Remove inaccurate LASX conversion pattern and use [X]VFFINT.S.L instead (#207107) Original LASX signed/unsigned 64-bit integer & floating point will suffer from double rounding issue, due to it implements such logic: `i64 -> double -> float` that will lead to precision loss. So delete it and introduce the `[X]VFFINT.S.L` instruction, which could convert 4 or 8 signed 64-bit integer into float in one instrunction. Also, create the `MergeBlocksConvert` helper function to reuse the logic about merge two blocks into one, avoid unnecessary code size bloat.
Author
Parents
Loading