Index: test/CodeGen/arm_neon_asm_clobber.c =================================================================== --- test/CodeGen/arm_neon_asm_clobber.c (revision 0) +++ test/CodeGen/arm_neon_asm_clobber.c (revision 0) @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -triple armv7-unknown-unknown -emit-llvm -o %t %s + +void test0(void) { + asm volatile("mov q4, #0" ::: "q4" ); +} +void test1(void) { + asm volatile("mov q4, #0" ::: "d8", "d9" ); +} +void test2(void) { + asm volatile("mov d8, #0" ::: "s16", "s17" ); +} Index: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp (revision 102108) +++ lib/Basic/Targets.cpp (working copy) @@ -1611,7 +1611,20 @@ const char * const ARMTargetInfo::GCCRegNames[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", - "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15" + "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", + + "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", + "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15", + "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23", + "s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31", + + "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", + "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", + "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", + "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31", + + "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", + "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15" }; void ARMTargetInfo::getGCCRegNames(const char * const *&Names,