![](https://pdfstore-manualsonline.prod.a.ki/pdfasset/c/c1/cc14c14d-6bab-413d-b466-247b4810f85b/cc14c14d-6bab-413d-b466-247b4810f85b-bg9.png)
Guide to Cell/B.E. Programming Documentation
© 2008 Sony Computer Entertainment Inc. All Rights Reserved. Version 1.0, August 2008
Page 9 of 16
C/C++ Language Extensions for CBE Architecture
Cell Broadband Engine Public Information and Downloads
http://cell.scei.co.jp/e_download.html
Length
150 pages.
Audience
C/C++ application and system programmers.
Content
Extensions (intrinsics) to the C and C++ languages that allow software developers to access hardware features not
accessible (or not easily accessible) from C or C++. The extensions allow SIMD and other applications to obtain PPE or
SPE performance comparable to assembly-language programs. The document also includes function specifications to
facilitate communication between SPEs and the PPE, and it lists a minimal set of standard library functions that must
be provided as part of a standard SPE programming environment.
Recommended Use
Browse during first readings of the CBE Programming Handbook, and refer to it thereafter as needed during coding of
applications for the PPE or SPEs.
Document Sections
The document has the following sections:
1. Data Types and Programming Directives: PPU vector/SIMD multimedia extension and SPU vector data types,
operations on these data types, programming directives, and predefined macro target definitions.
2. SPU Low-Level Specific and Generic Intrinsics: The basic intrinsics and built-ins that make the underlying SPU ISA
and SPE hardware accessible from the C programming language.
3. Composite Intrinsics: Intrinsics that can be constructed from a series of low-level (generic or specific) intrinsics.
4. Programming Support for MFC Input and Output: Utility functions implemented either as macro definitions or built-
in functions that support MFC input or output.
5. SPU and Vector Multimedia Extension Intrinsics: Mapping between PPU vector/SIMD multimedia extension
intrinsics and SPU intrinsics.
6. PPU VMX Intrinsics: Intrinsics that make the underlying PPU vector/SIMD multimedia extension instruction set
accessible from C and C++.
7. PPU Intrinsics: A minimal set of specific intrinsics to make the underlying PPU instruction set accessible from C.
8. SPU C and C++ Standard Libraries and Language Support: Differences between C and C++ standard libraries on
the SPU and the corresponding IS0/IEC standards, and common language features that are not supported on the
SPU.
9. Floating-Point Arithmetic on the SPU: Differences between Annex F of the C99 language floating-point standard
(ISO/IEC 9899) and the SPU implementations that apply to SPU compilers and libraries.
Recommended Prerequisites
Read or browse:
CBE Programming Handbook
Further Details
See:
SIMD Math Library Specification for CBE Architecture