diff options
author | Owen Anderson <resistor@mac.com> | 2011-03-07 18:29:47 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2011-03-07 18:29:47 +0000 |
commit | 6154f6c9292179fab6346ae8336f2ad790b52028 (patch) | |
tree | 5cb28088962822a7073c7629be2d0ca422337fbb /lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
parent | a6428a401b4692527dce51ef4318334c0913e17e (diff) | |
download | external_llvm-6154f6c9292179fab6346ae8336f2ad790b52028.zip external_llvm-6154f6c9292179fab6346ae8336f2ad790b52028.tar.gz external_llvm-6154f6c9292179fab6346ae8336f2ad790b52028.tar.bz2 |
Use the correct LHS type when determining the legalization of a shift's RHS type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127163 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index f08528f..94080a0 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -948,7 +948,8 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) { // Legalizing shifts/rotates requires adjusting the shift amount // to the appropriate width. if (!Ops[1].getValueType().isVector()) - Ops[1] = LegalizeOp(DAG.getShiftAmountOperand(Ops[1])); + Ops[1] = LegalizeOp(DAG.getShiftAmountOperand(Ops[0].getValueType(), + Ops[1])); break; case ISD::SRL_PARTS: case ISD::SRA_PARTS: @@ -956,7 +957,8 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) { // Legalizing shifts/rotates requires adjusting the shift amount // to the appropriate width. if (!Ops[2].getValueType().isVector()) - Ops[2] = LegalizeOp(DAG.getShiftAmountOperand(Ops[2])); + Ops[2] = LegalizeOp(DAG.getShiftAmountOperand(Ops[0].getValueType(), + Ops[2])); break; } |