]> granicus.if.org Git - clang/commitdiff
Add support for AVX registers to clang inline asm. Add a small testcase
authorEric Christopher <echristo@apple.com>
Fri, 2 Dec 2011 02:12:16 +0000 (02:12 +0000)
committerEric Christopher <echristo@apple.com>
Fri, 2 Dec 2011 02:12:16 +0000 (02:12 +0000)
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

lib/Basic/Targets.cpp
test/CodeGen/asm.c
test/Sema/asm.c

index 4eaa6248e2355bcda2061e5a3a24438c29cc3c33..aee875dd75086580725e5889d4a36e40104bf5ed 100644 (file)
@@ -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[] = {
index 4cbf63b862e3fd4491ca0b0bdbcb64b570853f93..84f26e1013c135dbfa2b2706753346d65f4e6665 100644 (file)
@@ -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");
+}
index 359431c4f93a41cf9d62c3f7a20bd22d774040ea..44d83e92143b0fb95480d3e5821de910ab38bc41 100644 (file)
@@ -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}}
 }