ZHCUBL2L January   2018  – March 2025

 

  1.   1
  2.   C7000 主机仿真
  3. 1 关于本文档
    1. 1.1 相关文档
    2. 1.2 免责声明
    3. 1.3 商标
  4. 2 主机仿真入门
    1. 2.1 系统要求
    2. 2.2 安装说明
    3. 2.3 主机仿真库版本
    4. 2.4 差异总结:主机仿真编码与原生 C7000 编码
  5. 3 一般编码要求
    1. 3.1 所需的头文件
    2. 3.2 包依赖项
    3. 3.3 示例程序
  6. 4 内在函数
    1. 4.1 类似 OpenCL 的内在函数
    2. 4.2 流地址生成器内在函数
    3. 4.3 C6000 传统内在函数
    4. 4.4 存储器系统内在函数
  7. 5 TI 向量类型
    1. 5.1 构造函数
    2. 5.2 访问器
    3. 5.3 向量运算符
    4. 5.4 打印调试函数
  8. 6 流引擎和流地址生成器
  9. 7 查询表和直方图接口
    1. 7.1 查询表和直方图数据
  10. 8 C6000 迁移
    1. 8.1 __float2_t 传统数据类型
  11. 9 矩阵乘法加速器 (MMA) 接口
  12. 10编译器错误和警告
    1. 10.1 编译器错误和警告中包含的关键术语
    2. 10.2 主机仿真特定语法
  13. 11修订历史记录
  14.   36

构造函数

从 C7000 编译器 v3.0 开始,C7000 TI 编译器 (cl7x) 接受构造函数样式的语法来进行向量初始化。若要创建使用 cl7x 和主机仿真进行编译的可移植代码,请对向量初始化使用构造函数样式语法,而不是仅适用于 cl7x 的“cast/scalar-widening”初始化样式。

以下代码中显示了正确和错误的向量构造函数初始化语法示例。

/* Host Emulation vector constructor syntax examples */
// The following examples work for both cl7x and Host Emulation
long2 ex1 = long2(1);                  // -> (1,1)
long2 ex2 = long2(1,2);                // -> (1,2)
long8 ex3 = long8(long4(1), long4(2)); // -> (1,1,1,1,2,2,2,2)
long8 ex4 = long8(long4(1),2,3,4,5);   // -> (1,1,1,1,2,3,4,5)

// Do not use the following syntax for code that needs to compile 
// with Host Emulation. This is valid C++ syntax, but results are 
// not as expected when compiling with Host Emulation.
//long8 ex5 = (long8)(1,2,3,4,5,6,7,8); // -> (8,8,8,8,8,8,8,8) [for Host Emulation]