SPRUIG6K January   2018  â€“ March 2024

 

  1.   1
  2.   C7000 Host Emulation
  3. About This Document
    1. 1.1 Related Documentation
    2. 1.2 Disclaimer
    3. 1.3 Trademarks
  4. Getting Started with Host Emulation
    1. 2.1 System Requirements
    2. 2.2 Installation Instructions
    3. 2.3 Summary of Differences: Host Emulation Coding vs. Native C7000 Coding
  5. General Coding Requirements
    1. 3.1 Required Header Files
    2. 3.2 Package Dependencies
    3. 3.3 Example Program
  6. Intrinsics
    1. 4.1 OpenCL-Like Intrinsics
    2. 4.2 Streaming Address Generator Intrinsics
    3. 4.3 C6000 Legacy Intrinsics
    4. 4.4 Memory System Intrinsics
  7. TI Vector Types
    1. 5.1 Constructors
    2. 5.2 Accessors
    3. 5.3 Vector Operators
    4. 5.4 Print Debug Function
  8. Streaming Engine and Streaming Address Generator
  9. Lookup Table and Histogram Interface
    1. 7.1 Lookup Table and Histogram Data
  10. C6000 Migration
    1. 8.1 __float2_t Legacy Data Type
  11. Matrix Multiply Accelerator (MMA) Interface
  12. 10Compiler Errors and Warnings
    1. 10.1 Key Terms Found in Compiler Errors and Warnings
    2. 10.2 Host Emulation Specific Syntax
  13. 11Revision History
  14.   35

Vector Operators

All vector operators are supported in Host Emulation, except the vector ternary operator—that is, when the condition expression is a vector.

All other operator implementations follow the specification detailed in the C7000 C/C++ Optimizing Compiler User's Guide (SPRUIG8). Illegal uses of an operator result in compiler errors. However, the type of message received may vary. In a few cases, illegal uses of some operators result in assertion errors at compile time rather than traditional compiler errors.

Nested subvector accesses should be specified using function-call syntax. For example, when compiling for Host Emulation, vect.lo().lo() is legal, but vect.lo.lo is not. As of v3.0 of the C7000 compiler, there is no limit to the nesting depth for subvectors compiled for Host Emulation.