/* APPLE LOCAL file CW asm blocks */
/* { dg-do assemble { target i?86*-*-darwin* } } */
/* { dg-options { -fasm-blocks } } */
/* <rdar://problem/7763139> */

#include <stdio.h>

#if !__x86_64__ && !__i386__
#error compile with -arch x86_64 or -arch i386
#endif

int main()
{
  float a = 1.0;
  float *aPtr = NULL;
  double b = 2.0;
  double *bPtr = NULL;
  
  __asm__
    {
#if __x86_64__
        lea     rax,a
	mov     aPtr,rax
	lea     rax,b
	mov     bPtr,rax
#elif __i386__
	lea     eax,a
	mov     aPtr,eax
	lea     eax,b
	mov     bPtr,eax
#endif
	}
  
  printf("a: %f, b: %lf\n", *aPtr, *bPtr);
  
  return 0;
}
