This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/81904] FMA and addsub instructions
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 21 Aug 2017 09:35:08 +0000
- Subject: [Bug target/81904] FMA and addsub instructions
- Auto-submitted: auto-generated
- References: <bug-81904-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81904
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
__m128d h(__m128d x, __m128d y, __m128d z){
__m128d tem = _mm_mul_pd (x,y);
__m128d tem2 = tem + z;
__m128d tem3 = tem - z;
return __builtin_shuffle (tem2, tem3, (__m128i) {0, 3});
}
doesn't quite work (the combiner pattern for fmaddsub is missing). Tried {0,
2} as well.
:
.LFB5021:
.cfi_startproc
vmovapd %xmm0, %xmm3
vfmsub132pd %xmm1, %xmm2, %xmm0
vfmadd132pd %xmm1, %xmm2, %xmm3
vshufpd $2, %xmm0, %xmm3, %xmm0