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 llvm-svn: 145671
This commit is contained in:
parent
5037249cc3
commit
af6431077c
|
@ -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[] = {
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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}}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue