[PATCH] D25902: [AVX-512] Fix the operand order for all calls to __builtin_ia32_vfmaddss3_mask.

Elena Demikhovsky via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 24 11:29:06 PDT 2016


delena added inline comments.


================
Comment at: lib/Headers/avx512fintrin.h:8394
           _MM_FROUND_CUR_DIRECTION);
 }
 
----------------
Using vfmaddss3_mask is wrong in this case.
It will propagate -B to lower bits if mask==0.


================
Comment at: lib/Headers/avx512fintrin.h:8453
 {
  return (__m128) __builtin_ia32_vfmaddss3_maskz (-(__v4sf) __A,
           (__v4sf) __B,
----------------
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


https://reviews.llvm.org/D25902





More information about the cfe-commits mailing list