From: Eric Christopher Date: Fri, 2 Dec 2011 02:12:16 +0000 (+0000) Subject: Add support for AVX registers to clang inline asm. Add a small testcase X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c5f9a011a5c13361a3a56ed7fa3507b4b585063e;p=clang Add support for AVX registers to clang inline asm. Add a small testcase and update the Sema testcase with a register that we won't hit for a while I hope. Fixes rdar://10510405 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145671 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 4eaa6248e2..aee875dd75 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -1150,6 +1150,8 @@ static const char* const GCCRegNames[] = { "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15", + "ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6", "ymm7", + "ymm8", "ymm9", "ymm10", "ymm11", "ymm12", "ymm13", "ymm14", "ymm15", }; const TargetInfo::AddlRegName AddlRegNames[] = { diff --git a/test/CodeGen/asm.c b/test/CodeGen/asm.c index 4cbf63b862..84f26e1013 100644 --- a/test/CodeGen/asm.c +++ b/test/CodeGen/asm.c @@ -214,3 +214,9 @@ void t25(void) "fpsr","fpcr" \ ); } + +// rdar://10510405 - AVX registers +typedef long long __m256i __attribute__((__vector_size__(32))); +void t26 (__m256i *p) { + __asm__ volatile("vmovaps %0, %%ymm0" :: "m" (*(__m256i*)p) : "ymm0"); +} diff --git a/test/Sema/asm.c b/test/Sema/asm.c index 359431c4f9..44d83e9214 100644 --- a/test/Sema/asm.c +++ b/test/Sema/asm.c @@ -21,7 +21,7 @@ void clobbers() { asm ("nop" : : : "0", "%0", "#0"); asm ("nop" : : : "foo"); // expected-error {{unknown register name 'foo' in asm}} asm ("nop" : : : "52"); - asm ("nop" : : : "54"); // expected-error {{unknown register name '54' in asm}} + asm ("nop" : : : "104"); // expected-error {{unknown register name '104' in asm}} asm ("nop" : : : "-1"); // expected-error {{unknown register name '-1' in asm}} asm ("nop" : : : "+1"); // expected-error {{unknown register name '+1' in asm}} }