diff options
author | Craig Topper <craig.topper@intel.com> | 2017-11-25 18:32:43 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-11-25 18:32:43 +0000 |
commit | e485631cd148e18701254634a3003e6bb5797eb2 (patch) | |
tree | 6e7e208068025363a98e57a88f3a7ede7f48069e /clang/test | |
parent | ea37e201ec2f9c3d8b2c9bb37ff48cacdd992f55 (diff) | |
download | bcm5719-llvm-e485631cd148e18701254634a3003e6bb5797eb2.tar.gz bcm5719-llvm-e485631cd148e18701254634a3003e6bb5797eb2.zip |
[X86] Add separate intrinsics for scalar FMA4 instructions.
Summary:
These instructions zero the non-scalar part of the lower 128-bits which makes them different than the FMA3 instructions which pass through the non-scalar part of the lower 128-bits.
I've only added fmadd because we should be able to derive all other variants using operand negation in the intrinsic header like we do for AVX512.
I think there are still some missed negate folding opportunities with the FMA4 instructions in light of this behavior difference that I hadn't noticed before.
I've split the tests so that we can use different intrinsics for scalar testing between the two. I just copied the tests split the RUN lines and changed out the scalar intrinsics.
fma4-fneg-combine.ll is a new test to make sure we negate the fma4 intrinsics correctly though there are a couple TODOs in it.
Reviewers: RKSimon, spatel
Reviewed By: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39851
llvm-svn: 318984
Diffstat (limited to 'clang/test')
0 files changed, 0 insertions, 0 deletions