mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
R600/SI: Add pattern for bswap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220304 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -117,6 +117,8 @@ SITargetLowering::SITargetLowering(TargetMachine &TM) :
|
||||
setOperationAction(ISD::SETCC, MVT::v2i1, Expand);
|
||||
setOperationAction(ISD::SETCC, MVT::v4i1, Expand);
|
||||
|
||||
setOperationAction(ISD::BSWAP, MVT::i32, Legal);
|
||||
|
||||
setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Legal);
|
||||
setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i1, Custom);
|
||||
setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i1, Custom);
|
||||
@@ -257,6 +259,13 @@ SITargetLowering::SITargetLowering(TargetMachine &TM) :
|
||||
// TargetLowering queries
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
bool SITargetLowering::isShuffleMaskLegal(const SmallVectorImpl<int> &,
|
||||
EVT) const {
|
||||
// SI has some legal vector types, but no legal vector operations. Say no
|
||||
// shuffles are legal in order to prefer scalarizing some vector operations.
|
||||
return false;
|
||||
}
|
||||
|
||||
// FIXME: This really needs an address space argument. The immediate offset
|
||||
// size is different for different sets of memory instruction sets.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user