How to square floats accurately and efficiently on the ST231 integer processor

Claude-Pierre Jeannerod 1, * Jingyan Jourdan-Lu 1, 2 Christophe Monat 2 Guillaume Revy 3
* Corresponding author
1 ARIC - Arithmetic and Computing
Inria Grenoble - Rhône-Alpes, LIP - Laboratoire de l'Informatique du Parallélisme
2 Compilation Expertise Center
ST-GRENOBLE - STMicroelectronics [Grenoble]
3 DALI - Digits, Architectures et Logiciels Informatiques
UPVD - Université de Perpignan Via Domitia, LIRMM - Laboratoire d'Informatique de Robotique et de Microélectronique de Montpellier
Abstract : We consider the problem of computing IEEE floating-point squares by means of integer arithmetic. We show how the specific properties of squaring can be exploited in order to design and implement algorithms that have much lower latency than those for general multiplication, while still guaranteeing correct rounding. Our algorithm descriptions are parameterized by the floating-point format, aim at high instruction-level parallelism (ILP) exposure, and cover all rounding modes. We show further that their C implementation for the binary32 format yields efficient codes for targets like the ST231 VLIW integer processor from STMicroelectronics, with a latency at least 1.75x smaller than that of general multiplication in the same context.
Document type :
Preprints, Working Papers, ...
Contributor : Claude-Pierre Jeannerod <>
Submitted on : Friday, November 19, 2010 - 7:00:22 AM
Last modification on : Wednesday, January 20, 2016 - 3:07:15 PM
Document(s) archivé(s) le : Friday, October 26, 2012 - 4:00:13 PM


Files produced by the author(s)


  • HAL Id : ensl-00532829, version 1



Claude-Pierre Jeannerod, Jingyan Jourdan-Lu, Christophe Monat, Guillaume Revy. How to square floats accurately and efficiently on the ST231 integer processor. 2010. <ensl-00532829>




Record views


Document downloads