diff options
-rw-r--r-- | lib/Basic/Targets.cpp | 2 | ||||
-rw-r--r-- | test/CodeGen/asm.c | 6 | ||||
-rw-r--r-- | test/Sema/asm.c | 2 |
3 files changed, 9 insertions, 1 deletions
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}} } |