mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 05:00:26 +00:00
Mark rotl/rotr as expand. This generates pretty ugly code, but this is better than nothing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71976 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aceb620de8
commit
e4fdb8b8ff
@ -73,6 +73,10 @@ MSP430TargetLowering::MSP430TargetLowering(MSP430TargetMachine &tm) :
|
||||
setOperationAction(ISD::SRA, MVT::i16, Custom);
|
||||
setOperationAction(ISD::SHL, MVT::i16, Custom);
|
||||
setOperationAction(ISD::SRL, MVT::i16, Custom);
|
||||
setOperationAction(ISD::ROTL, MVT::i8, Expand);
|
||||
setOperationAction(ISD::ROTR, MVT::i8, Expand);
|
||||
setOperationAction(ISD::ROTL, MVT::i16, Expand);
|
||||
setOperationAction(ISD::ROTR, MVT::i16, Expand);
|
||||
setOperationAction(ISD::RET, MVT::Other, Custom);
|
||||
setOperationAction(ISD::GlobalAddress, MVT::i16, Custom);
|
||||
setOperationAction(ISD::ExternalSymbol, MVT::i16, Custom);
|
||||
|
17
test/CodeGen/MSP430/2009-05-17-Rot.ll
Normal file
17
test/CodeGen/MSP430/2009-05-17-Rot.ll
Normal file
@ -0,0 +1,17 @@
|
||||
; RUN: llvm-as < %s | llc -march=msp430
|
||||
|
||||
define i16 @rol1u16(i16 %x.arg) nounwind {
|
||||
%retval = alloca i16
|
||||
%x = alloca i16
|
||||
store i16 %x.arg, i16* %x
|
||||
%1 = load i16* %x
|
||||
%2 = shl i16 %1, 1
|
||||
%3 = load i16* %x
|
||||
%4 = lshr i16 %3, 15
|
||||
%5 = or i16 %2, %4
|
||||
store i16 %5, i16* %retval
|
||||
br label %return
|
||||
return:
|
||||
%6 = load i16* %retval
|
||||
ret i16 %6
|
||||
}
|
Loading…
Reference in New Issue
Block a user