http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59794

            Bug ID: 59794
           Summary: i386 backend fails to detect SSE return value
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: ubizjak at gmail dot com

[hjl@gnu-6 gcc]$ cat /tmp/f.i
typedef int __v4si __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16),
__may_alias__));

__m128i
f1(void)
{
  return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 };
}
[hjl@gnu-6 gcc]$ gcc -S -O /tmp/f.i -mno-sse -m32
[hjl@gnu-6 gcc]$ gcc -S -O /tmp/f.i -mno-sse 
/tmp/f.i: In function ‘f1’:
/tmp/f.i:6:1: error: SSE register return with SSE disabled
 {
 ^
[hjl@gnu-6 gcc]$ 

Both -m32 and -m64 should issue the same warning.

Reply via email to