【发布时间】:2013-07-03 00:53:03
【问题描述】:
我需要帮助例如将四个数字除以并打印它们。我使用 g++ 作为我的编译器。以下代码确实使用 -msse3 -mmmx 标志编译,我什至不确定我是否需要这些,但它可以工作。我知道在除法之前我必须用函数调用set 数字,但我不确定要调用哪个函数(我认为链接只有int 的设置函数)。如果有办法使用std::cout 打印结果会更好,但printf 可以正常工作(我不确定print128_num 是否适用于这种情况,它最初是为int 编写的)。这是代码。
#include <emmintrin.h>
#include <xmmintrin.h>
#include <stdio.h>
#include <stdint.h>
void print128_num(__m128i var)
{
uint16_t *val = (uint16_t*) &var;
printf("Numerical: %i %i %i %i %i %i %i %i \n",
val[0], val[1], val[2], val[3], val[4], val[5],
val[6], val[7]);
}
__m128 divide_4_32_bit_values(__m128 __A, __m128 __B)
{
return _mm_div_ps (__A, __B);
}
int main(void)
{
return 0;
}
【问题讨论】:
-
您是否有意将 4
floats 打印为 8int16s? -
不,我不是我在帖子末尾写的那可能是错误的。所以我需要修复 4 个浮点数?
-
等等,所以你问的是如何将
printf()改为打印 4floats 而不是你所拥有的? -
是的,还有在调用
divide_4_32_bit_values之前如何使用正确的set函数。 -
这段代码真的是 wtf。
标签: c++ g++ sse intrinsics