PR 16354 was just fixed, and I tested the fix. I noticed that there is a new warning: va-arg-25.c:32: warning: SSE vector argument without SSE enabled changes the ABI So I entered gcc -Os -msse va-arg-25.c and I get va-arg-25.c: In function `main': va-arg-25.c:36: error: unrecognizable insn: (insn:HI 11 10 12 0 (set (mem/i:V4SI (pre_dec:SI (reg/f:SI 7 sp)) [0 S16 A128]) (reg:V4SI 59)) -1 (insn_list 10 (nil)) (expr_list:REG_DEAD (reg:V4SI 59) (nil))) va-arg-25.c:36: internal compiler error: in extract_insn, at recog.c:2050 The test case is gcc/testsuite/gcc.c-torture/execute/va-arg-25.c
With 3.4.x and 3.3.x, we don't see the ICE, but we do see the problem described in PR 16354 .
I have seen something like this in 3.4.0 also but I cannot remmeber were. The real issue is that it cannot be done without sse2 and not sse.
http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01351.html