diff options
author | Paul Redmond <paul.redmond@intel.com> | 2013-08-19 20:01:35 +0000 |
---|---|---|
committer | Paul Redmond <paul.redmond@intel.com> | 2013-08-19 20:01:35 +0000 |
commit | d345395ec97a303ffd420c3e761af7b9e3e4c338 (patch) | |
tree | 51c7846b1fcf5c930ba0d5f268bfce5a670e8184 /lib/CodeGen/SelectionDAG/LegalizeTypes.h | |
parent | 32bd10b1a33df2cc4d067a16901d56665f4ba085 (diff) | |
download | external_llvm-d345395ec97a303ffd420c3e761af7b9e3e4c338.zip external_llvm-d345395ec97a303ffd420c3e761af7b9e3e4c338.tar.gz external_llvm-d345395ec97a303ffd420c3e761af7b9e3e4c338.tar.bz2 |
Improve the widening of integral binary vector operations
- split WidenVecRes_Binary into WidenVecRes_Binary and WidenVecRes_BinaryCanTrap
- WidenVecRes_BinaryCanTrap preserves the original behaviour for operations
that can trap
- WidenVecRes_Binary simply widens the operation and improves codegen for
3-element vectors by allowing widening and promotion on x86 (matches the
behaviour of unary and ternary operation widening)
- use WidenVecRes_Binary for operations on integers.
Reviewed by: nrotem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188699 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeTypes.h')
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeTypes.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypes.h b/lib/CodeGen/SelectionDAG/LegalizeTypes.h index d5d230a..97d28f0 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypes.h +++ b/lib/CodeGen/SelectionDAG/LegalizeTypes.h @@ -631,6 +631,7 @@ private: SDValue WidenVecRes_Ternary(SDNode *N); SDValue WidenVecRes_Binary(SDNode *N); + SDValue WidenVecRes_BinaryCanTrap(SDNode *N); SDValue WidenVecRes_Convert(SDNode *N); SDValue WidenVecRes_POWI(SDNode *N); SDValue WidenVecRes_Shift(SDNode *N); |