https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- gcc has also some problems in this area. With -mregparm=3, one would expect arguments obeying integer ABI to be passed in registers, but regparm flag has no effect and the same code is produced: foo: movd 4(%esp), %xmm0 movd 8(%esp), %xmm1 paddw %xmm1, %xmm0 movd %xmm0, %eax ret