https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102811
--- Comment #26 from Uroš Bizjak <ubizjak at gmail dot com> --- The testcase now compiles with -O2 -mf16c to: vpxor %xmm2, %xmm2, %xmm2 vpblendw $1, %xmm0, %xmm2, %xmm0 vpblendw $1, %xmm1, %xmm2, %xmm1 vcvtph2ps %xmm1, %xmm1 vcvtph2ps %xmm0, %xmm0 vaddss %xmm1, %xmm0, %xmm0 vinsertps $0xe, %xmm0, %xmm0, %xmm0 vcvtps2ph $4, %xmm0, %xmm0 ret for 64-bit targets and: vpxor %xmm2, %xmm2, %xmm2 vpinsrw $0, 4(%esp), %xmm2, %xmm0 vpinsrw $0, 8(%esp), %xmm2, %xmm1 vcvtph2ps %xmm0, %xmm0 vcvtph2ps %xmm1, %xmm1 vaddss %xmm1, %xmm0, %xmm0 vinsertps $0xe, %xmm0, %xmm0, %xmm0 vcvtps2ph $4, %xmm0, %xmm0 ret for 32-bit targets. Fixed.