craig.topper added inline comments.
================ Comment at: lib/Headers/avx512fintrin.h:8394 _MM_FROUND_CUR_DIRECTION); } ---------------- delena wrote: > Using vfmaddss3_mask is wrong in this case. > It will propagate -B to lower bits if mask==0. I dont' understand this. The passthru should be from the first argument. This call should do if (mask) result = _W * _A - _B else result = _W; ================ Comment at: lib/Headers/avx512fintrin.h:8453 { return (__m128) __builtin_ia32_vfmaddss3_maskz (-(__v4sf) __A, (__v4sf) __B, ---------------- delena wrote: > This one is, probably, also wrong, because we should copy the upper bits of > __A as is. > > IF k[0] > dst[31:0] := -(a[31:0] * b[31:0]) + c[31:0] > ELSE > dst[31:0] := c[31:0] > FI > dst[127:32] := a[127:32] > dst[MAX:128] := 0 Agree this is also wrong. I was going to try to fix one intrinsic at a time. We have some problems with __builtin_ia32_vfmaddss3_mask3 usages as well. https://reviews.llvm.org/D25902 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits