[all-commits] [llvm/llvm-project] b23e51: Fix TOSA FP16->INT16 CAST lowering (#79299)

RoboTux via All-commits all-commits at lists.llvm.org
Tue Jan 30 08:06:20 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b23e518ce0df5b0835aba245cda50379bd896374
      https://github.com/llvm/llvm-project/commit/b23e518ce0df5b0835aba245cda50379bd896374
  Author: Thomas Preud'homme <thomas.preudhomme at arm.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir

  Log Message:
  -----------
  Fix TOSA FP16->INT16 CAST lowering (#79299)

Currently cast from FP to int is implemented by clamping on the min and
max
integer values in the floating-point domain and then converting to
integer. However, the max int values are often non representable in the
floating-point input type due to lack of mantissa bits.

This patch instead use a select acting on a compare against max int + 1
which is representable in floating-point. It also has a special lowering
for cases where the integer range is wider than the floating-point range
to clamp the infinite values.




More information about the All-commits mailing list