Issues with rounding in the GCC implementation of the ISO 18037: 2008 standard fixed-point arithmetic

Mantas Mikaitis

Research output: Contribution to conferencePaperpeer-review


We describe various issues caused by the lack of round-to-nearest mode in the gcc compiler implementation of the fixed-point arithmetic data types and operations. We demonstrate that round-to-nearest is not performed in the conversion of constants, conversion from one numerical type to a less precise type and results of multiplications. Furthermore, we show that mixed-precision operations in fixed-point arithmetic lose precision on arguments, even before carrying out arithmetic operations. The ISO 18037:2008 standard was created to standardize C language extensions, including fixed-point arithmetic, for embedded systems. Embedded systems are usually based on ARM processors, of which approximately 100 billion have been manufactured by now. Therefore, the observations about numerical issues that we discuss in this paper can be rather dangerous and are important to address, given the wide ranging type of applications that these embedded systems are running.
Original languageEnglish
Number of pages4
Publication statusPublished - 3 Aug 2020
Event27th IEEE Symposium on Computer Arithmetic (ARITH) - Portland, United States
Duration: 7 Jun 202010 Jun 2020


Conference27th IEEE Symposium on Computer Arithmetic (ARITH)
Abbreviated titleARITH
Country/TerritoryUnited States
Internet address


  • fixed-point arithmetic
  • rounding
  • ISO 18037:2008


Dive into the research topics of 'Issues with rounding in the GCC implementation of the ISO 18037: 2008 standard fixed-point arithmetic'. Together they form a unique fingerprint.

Cite this