The preserved input should be the first argument and the vector inputs should be in the same order as the intrinsics it is used to implement.
Details
Details
- Reviewers
delena igorb - Commits
- rGf202365910b9: [AVX-512] Fix the operand order for all calls to __builtin_ia32_vfmaddss3_mask.
rC285175: [AVX-512] Fix the operand order for all calls to __builtin_ia32_vfmaddss3_mask.
rL285175: [AVX-512] Fix the operand order for all calls to __builtin_ia32_vfmaddss3_mask.
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Headers/avx512fintrin.h | ||
---|---|---|
8394 ↗ | (On Diff #75557) | Using vfmaddss3_mask is wrong in this case. |
8453 ↗ | (On Diff #75557) | This one is, probably, also wrong, because we should copy the upper bits of __A as is. IF k[0] |
lib/Headers/avx512fintrin.h | ||
---|---|---|
8394 ↗ | (On Diff #75557) | 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; |
8453 ↗ | (On Diff #75557) | 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. |