相当于GCC的__builtin_darn()的lang声

时间:2018-11-26 07:12:35

标签: clang llvm powerpc altivec

我试图在Power9上发现与GCC's __builtin_darn()等效的Clang。抓取Clang 7.0源,看起来LLVM支持它:

llvm_source$ cat llvm/test/MC/PowerPC/ppc64-encoding.s | grep darn -B 1 -A 1

# CHECK-BE: darn 2, 3                       # encoding: [0x7c,0x43,0x05,0xe6]
# CHECK-LE: darn 2, 3                       # encoding: [0xe6,0x05,0x43,0x7c]
            darn 2, 3

但是,我看不到找到内置函数:

llvm_source$ grep -IR darn | grep builtin
llvm_source$

与CCC的__builtin_darn()等效的Clang是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用扩展的ASM(可能已经完成)进行写操作:

void t2()
{
    static unsigned int x;
    asm __volatile__("darn %0,1": "=r" (x));
}

您的错误参考:https://bugs.llvm.org/show_bug.cgi?id=39800

答案 1 :(得分:0)

这是 merged into LLVM 12.0.0-rc1,因此它很可能在 llvm/clang 12 中可用。