Assembly 将汇编代码转换为内部代码?

Assembly 将汇编代码转换为内部代码?,assembly,simd,intrinsics,avx512,Assembly,Simd,Intrinsics,Avx512,我在汇编中有一段代码,它接受单个浮点数,并将它们存储在zmm寄存器中。然后,它加载它们,使它们成为32位整数 "vbroadcastss (%0), %%zmm2\n\t" "vbroadcastss (%1), %%zmm1\n\t" "vpmovzxbd (%2,%3), %%zmm0\n\t" 我想使用以下方法将其转换为内部函数: __m512 _mm512_broadcastss_ps (__m128 a) 及 我不知道

我在汇编中有一段代码,它接受单个浮点数,并将它们存储在zmm寄存器中。然后,它加载它们,使它们成为32位整数

"vbroadcastss (%0), %%zmm2\n\t" 
"vbroadcastss (%1), %%zmm1\n\t"
"vpmovzxbd (%2,%3), %%zmm0\n\t"
我想使用以下方法将其转换为内部函数:

 __m512 _mm512_broadcastss_ps (__m128 a)


我不知道如何在intrinsic中使用寄存器。如何在内部函数中表示(%0),(%1),(%2)个元素?

请尝试播放
\u mm512\u set1\u ps()
。至于第三个,什么是
%2
%3
?您可能需要一个
\u mm\u loadu\u si128
来首先从内存加载操作数。对于
pmovzx
,没有内存源内部函数;由编译器将加载折叠到源操作数中。这通常在128位加载时起作用,但大多数编译器在64位或32位加载时失败,发出一个脑死的
vmovd
+
vpmovzx
序列或其他任何东西请尝试播放
\u mm512\u set1\u ps()
。至于第三个,什么是
%2
%3
?您可能需要一个
\u mm\u loadu\u si128
来首先从内存加载操作数。对于
pmovzx
,没有内存源内部函数;由编译器将加载折叠到源操作数中。这通常在128位加载时起作用,但大多数编译器在仅64位或32位加载时失败,发出一个脑死的
vmovd
+
vpmovzx
序列或任何东西/
__m512i _mm512_cvtepu8_epi32 (__m128i a)