diff --git a/clang/test/CodeGen/asm-inout.c b/clang/test/CodeGen/asm-inout.c index 888304355b2c..c7d1aeceb92f 100644 --- a/clang/test/CodeGen/asm-inout.c +++ b/clang/test/CodeGen/asm-inout.c @@ -19,23 +19,23 @@ void test2() { } // PR7338 +// CHECK: @test3 void test3(int *vout, int vin) { // CHECK: call void asm "opr $0,$1", "=*r|m|r,r|m|r,~{edi},~{dirflag},~{fpsr},~{flags}" -asm( - "opr %[vout],%[vin]" - : [vout] "=r,=m,=r" (*vout) - : [vin] "r,m,r" (vin) - : "edi" - ); + asm ("opr %[vout],%[vin]" + : [vout] "=r,=m,=r" (*vout) + : [vin] "r,m,r" (vin) + : "edi"); } // PR8959 - This should implicitly truncate the immediate to a byte. +// CHECK: @test4 int test4(volatile int *addr) { unsigned char oldval; + // CHECK: call i8 asm "frob $0", "=r,0{{.*}}"(i8 -1) __asm__ ("frob %0" : "=r"(oldval) : "0"(0xff)); return (int)oldval; -// CHECK: call i8 asm "frob $0", "=r,0{{.*}}"(i8 -1) } // - This should have both inputs be of type x86_mmx. @@ -43,6 +43,6 @@ int test4(volatile int *addr) { typedef long long __m64 __attribute__((__vector_size__(8))); __m64 test5(__m64 __A, __m64 __B) { // CHECK: call x86_mmx asm "pmulhuw $1, $0\0A\09", "=y,y,0,~{dirflag},~{fpsr},~{flags}"(x86_mmx %{{.*}}, x86_mmx %{{.*}}) - asm("pmulhuw %1, %0\n\t" : "+y" (__A) : "y" (__B)); + asm ("pmulhuw %1, %0\n\t" : "+y" (__A) : "y" (__B)); return __A; }