summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKalle Raiskila <kalle.raiskila@nokia.com>2010-11-29 14:44:28 +0000
committerKalle Raiskila <kalle.raiskila@nokia.com>2010-11-29 14:44:28 +0000
commit9363f739cdc3bd02e8516a25de0090f52ae12fbb (patch)
tree3b59c23bd2fc0549d3b419827d0775f2a6f1b1ad /lib
parentc2ebfd454c599f5023d2dc2c8106911f8c05614c (diff)
downloadllvm-9363f739cdc3bd02e8516a25de0090f52ae12fbb.tar.gz
llvm-9363f739cdc3bd02e8516a25de0090f52ae12fbb.tar.bz2
llvm-9363f739cdc3bd02e8516a25de0090f52ae12fbb.tar.xz
Handle lshr for i128 correctly on SPU also when
shiftamount > 7. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120288 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/CellSPU/SPUInstrInfo.td7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/CellSPU/SPUInstrInfo.td b/lib/Target/CellSPU/SPUInstrInfo.td
index 6e06e47c49..4095951c24 100644
--- a/lib/Target/CellSPU/SPUInstrInfo.td
+++ b/lib/Target/CellSPU/SPUInstrInfo.td
@@ -2727,6 +2727,8 @@ multiclass RotateMaskQuadByBitCount
def v8i16: ROTQMBYBIVecInst<v8i16>;
def v4i32: ROTQMBYBIVecInst<v4i32>;
def v2i64: ROTQMBYBIVecInst<v2i64>;
+ def r128: ROTQMBYBIInst<(outs GPRC:$rT), (ins GPRC:$rA, R32C:$rB),
+ [/*no pattern*/]>;
}
defm ROTQMBYBI: RotateMaskQuadByBitCount;
@@ -2762,8 +2764,9 @@ multiclass RotateMaskQuadByBits
defm ROTQMBI: RotateMaskQuadByBits;
def : Pat<(srl GPRC:$rA, R32C:$rB),
- (ROTQMBIr128 GPRC:$rA,
- (SFIr32 R32C:$rB, 0))>;
+ (ROTQMBYBIr128 (ROTQMBIr128 GPRC:$rA,
+ (SFIr32 R32C:$rB, 0)),
+ (SFIr32 R32C:$rB, 0))>;
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~