提问人:Srihari S 提问时间:9/13/2023 最后编辑:Peter CordesSrihari S 更新时间:9/13/2023 访问量:57
静态函数用于具有外部链接的内联函数 - 同时尝试在内联函数中使用加载指令
static function is used in an inline function with external linkage - while trying to use load instruction inside an inline function
问:
我最近在为我的工作使用 clang 编译器。我遇到了以下问题,我在gcc或msvc编译器中都没有遇到
test_newer.c:8:32: fatal error: static function '_mm_loadu_epi8' is used in an inline function with external linkage [-Wstatic-in-inline]
__m128i testing1 = _mm_loadu_epi8(a);
以下代码片段复制了相同的问题
#include <stdio.h>
#include <immintrin.h>
#define __forceinline __attribute__((always_inline)) inline
__forceinline void testing() {
unsigned char a[16] = {3, 4, 2, 5, 3, 2, 1, 2, 5, 6, 7, 9, 10, 11, 3, 4};
__m128i testing1 = _mm_loadu_epi8(a);
printf("Sample print\n");
}
int main() {
testing();
return 0;
}
这是我用来编译文件的命令——
clang -march=skylake-avx512 -O2 -c -Werror -Wall -Wextra -Wno-reserved-identifier -Weverything -Wfatal-errors test_newer.c -o file1
对于加载时面临的问题,是否还有其他替代方法,同时保留与命令行中使用的相同标志?谢谢
答: 暂无答案
评论
testing()
static
static
_mm_loadu_epi8
_mm_loadu_si128
_mm_loadu_epi8
static
immintrin.h
static __inline__
#define __inline__ /* something */
static
inline
__forceinline
__inline__
__attribute__
__asm__