/* { dg-do compile { target lp64 } } */ /* { dg-options "-O2" } */ /* { dg-final { scan-assembler-times "movl\[^\n\r]*, %eax|mov\[ \t]*eax," 1 } } */ /* { dg-final { scan-assembler-times "movss\[^\n\r]*, %xmm" 1 } } */ /* { dg-final { scan-assembler-times "movsd\[^\n\r]*, %xmm" 1 } } */ typedef struct { float x; } Float; Float __attribute__((ms_abi)) fn1() { Float v; v.x = 3.145F; return v; } float __attribute__((ms_abi)) fn2 () { float v; v = 3.145F; return v; } double __attribute__((ms_abi)) fn3 () { double v; v = 3.145; return v; }