aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/SelectionDAG/LegalizeTypes.h
diff options
context:
space:
mode:
authorPaul Redmond <paul.redmond@intel.com>2013-08-19 20:01:35 +0000
committerPaul Redmond <paul.redmond@intel.com>2013-08-19 20:01:35 +0000
commitd345395ec97a303ffd420c3e761af7b9e3e4c338 (patch)
tree51c7846b1fcf5c930ba0d5f268bfce5a670e8184 /lib/CodeGen/SelectionDAG/LegalizeTypes.h
parent32bd10b1a33df2cc4d067a16901d56665f4ba085 (diff)
downloadexternal_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.h1
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);