是否可以使用Cilk Plus Array Notation在“if”块语句中使用“__sec_implicit_ind
Is it possible to use `__sec_implicit_index` inside an `if` block statement using Cilk Plus Array Notation?
我的目标是在英特尔icc
编译器13.1.3 20130607
版本中使用Cilk Plus array Notation,根据隐式索引值有条件地为数组赋值。
考虑以下代码:
T test[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
if(test[:] < 5) {
test[:] = 10 - __sec_implicit_index(0);
}
这段代码编译得很好,但当我尝试运行它时,我会得到以下错误:
undefined symbol: __sec_implicit_index
注意尽管这看起来像是一个链接错误,但事实并非如此,因为以下代码编译并运行良好(条件已删除):
T test[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
test[:] = 10 - __sec_implicit_index(0);
那么,我的问题是:是否可以使用Cilk Plus数组符号来完成下面条件代码的行为?
T test[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for(int i = 0; i < 10; i++) {
if(i < 5) {
test[i] = 10 - i;
}
}
这个例子是正确的。问题是icc 13.1.3中的一个错误。icc14.0测试版为我正确编译并执行了这个例子。
对于icc 13.1.3,我发现#pragma simd通常更可靠,作为指示向量化权限的一种方式。有了它,您的示例看起来像:
T test[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
#pragma simd
for(int i = 0; i < 10; i++) {
if(i < 5) {
test[i] = 10 - i;
}
}
它当然失去了数组表示法的方便性。
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 我似乎对if/else的基本语句有问题:/
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- c++:定义if语句中的模板
- 主线的等价语句是什么