diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-11-18 02:25:34 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-11-18 02:25:34 +0000 |
| commit | 07f1c15995762790c99936dbcc1ce23aca3d53be (patch) | |
| tree | 68f3bc60036d3bda737cea7a42f0e0dec9877adc /llvm/lib | |
| parent | 2e8b2a70ab54122a1d5995530c05293d05f12c70 (diff) | |
| download | bcm5719-llvm-07f1c15995762790c99936dbcc1ce23aca3d53be.tar.gz bcm5719-llvm-07f1c15995762790c99936dbcc1ce23aca3d53be.zip | |
[AVX-512] Support FCOPYSIGN for v16f32 and v8f64
Summary:
This extends FCOPYSIGN support to 512-bit vectors.
I've also added tests to show what the 128-bit and 256-bit cases look like with broadcast loads.
Reviewers: delena, zvi, RKSimon, spatel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26791
llvm-svn: 287298
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 4660a5dd3b7..f9b28fcadd2 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -1187,6 +1187,7 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationAction(ISD::FNEG, VT, Custom); setOperationAction(ISD::FABS, VT, Custom); setOperationAction(ISD::FMA, VT, Legal); + setOperationAction(ISD::FCOPYSIGN, VT, Custom); } setOperationAction(ISD::FP_TO_SINT, MVT::v16i32, Legal); @@ -15043,7 +15044,7 @@ static SDValue LowerFCOPYSIGN(SDValue Op, SelectionDAG &DAG) { bool IsF128 = (VT == MVT::f128); assert((VT == MVT::f64 || VT == MVT::f32 || VT == MVT::f128 || VT == MVT::v2f64 || VT == MVT::v4f64 || VT == MVT::v4f32 || - VT == MVT::v8f32) && + VT == MVT::v8f32 || VT == MVT::v8f64 || VT == MVT::v16f32) && "Unexpected type in LowerFCOPYSIGN"); MVT EltVT = VT.getScalarType(); |

