[Bug target/19714] New: temporary not eliminated in composite _mm_set1_epi32

tbptbp at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun Jan 30 19:20:00 GMT 2005


Much like http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19274, gcc pays a visit to
the stack for _mm_set1_epi32 with a memory reference.

With a couple of days old cvs, -O2 -march=k8 -mfpmath=sse

#include <xmmintrin.h>

__m128i eliminated(const int i) {
	return _mm_set1_epi32(i);
}

__m128i not_eliminated(const int *i) {
	return _mm_set1_epi32(*i);
}

__m128i not_eliminated_bis(const int &i) {
	return _mm_set1_epi32(i);
}

int main() { return 0; }

gives:
00401086 <eliminated(int)>:
  401086:       66 0f 6e 44 24 04       movd   0x4(%esp),%xmm0
  40108c:       66 0f 70 c0 00          pshufd $0x0,%xmm0,%xmm0
  401091:       c3                      ret    

00401092 <not_eliminated(int const*)>:
  401092:       83 ec 04                sub    $0x4,%esp
  401095:       8b 44 24 08             mov    0x8(%esp),%eax
  401099:       8b 00                   mov    (%eax),%eax
  40109b:       89 04 24                mov    %eax,(%esp)
  40109e:       66 0f 6e 0c 24          movd   (%esp),%xmm1
  4010a3:       66 0f 70 c1 00          pshufd $0x0,%xmm1,%xmm0
  4010a8:       83 c4 04                add    $0x4,%esp
  4010ab:       c3                      ret

-- 
           Summary: temporary not eliminated in composite _mm_set1_epi32
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tbptbp at gmail dot com
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: cygwin


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



More information about the Gcc-bugs mailing list