diff options
author | Changpeng Fang <changpeng.fang@amd.com> | 2025-04-04 21:19:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-04 21:19:43 -0700 |
commit | f47034cbe5c02b748742c733cf453b3b907687e5 (patch) | |
tree | 59c93294eedf0b2efd6b1ab237559b54fb012e11 /clang/lib/Basic/SourceManager.cpp | |
parent | a07b37475ccbf6b718fdf64fd6f0756ea1958852 (diff) | |
download | llvm-f47034cbe5c02b748742c733cf453b3b907687e5.zip llvm-f47034cbe5c02b748742c733cf453b3b907687e5.tar.gz llvm-f47034cbe5c02b748742c733cf453b3b907687e5.tar.bz2 |
AMDGPU: Add round-to-odd rounding during f64 to bf16 conversion (#133995)
f64 -> bf16 conversion can be lowered to f64 -> f32 followed by f32 ->
bf16:
v_cvt_f32_f64_e32 v0, v[0:1]
v_cvt_pk_bf16_f32 v0, v0, s0
Both conversion instructions will do round-to-even rounding, and thus we
will have double rounding issue which may generate incorrect result in
some data range. We need to add round-to-odd rounding during f64 -> f32
to avoid double rounding,.
NOTE: we are having the same issue with f64 -> f16 conversion. Will add
round-to-odd rounding for it in a separate patch, which fixes
SWDEV-523856
---------
Co-authored-by: Matt Arsenault <arsenm2@gmail.com>
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions