#include <x86intrin.h> int test1(__m128i v) {
return _mm_cvtsi128_si32(v); } compiled with g++ -std=gnu++0x -O2 -m32 -march=native -msse -msse2 -msse3 -Wall -Werror -Wno-unused -Wno-strict-aliasing -march=native -fomit-frame-pointer -Wno-pmf-conversions -g main.cpp emits: 004012e0 <__Z5test1U8__vectorx>: 4012e0: 83 ec 0c sub $0xc,%esp 4012e3: 66 0f 7e c0 movd %xmm0,%eax 4012e7: 83 c4 0c add $0xc,%esp 4012ea: c3 ret which shows that the stack pointer is being updated without any purpose. -- Summary: Superfluous stack management code is generated Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: piotr dot wyderski at gmail dot com GCC host triplet: GCC-trunk(20100107)/Cygwin/WinXP32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42778