forked from OSchip/llvm-project
[ARM] Mark div and rem as expand for MVE
We don't have vector operations for these, so they need to be expanded for both integer and float. Differential Revision: https://reviews.llvm.org/D63595 llvm-svn: 364631
This commit is contained in:
parent
8ab8a60a1e
commit
fc4102417b
|
@ -235,6 +235,12 @@ void ARMTargetLowering::addMVEVectorTypes(bool HasMVEFP) {
|
|||
setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
|
||||
setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
|
||||
setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
|
||||
|
||||
// No native support for these.
|
||||
setOperationAction(ISD::UDIV, VT, Expand);
|
||||
setOperationAction(ISD::SDIV, VT, Expand);
|
||||
setOperationAction(ISD::UREM, VT, Expand);
|
||||
setOperationAction(ISD::SREM, VT, Expand);
|
||||
}
|
||||
|
||||
const MVT FloatTypes[] = { MVT::v8f16, MVT::v4f32 };
|
||||
|
@ -252,6 +258,12 @@ void ARMTargetLowering::addMVEVectorTypes(bool HasMVEFP) {
|
|||
setOperationAction(ISD::BITCAST, VT, Legal);
|
||||
setOperationAction(ISD::LOAD, VT, Legal);
|
||||
setOperationAction(ISD::STORE, VT, Legal);
|
||||
|
||||
if (HasMVEFP) {
|
||||
// No native support for these.
|
||||
setOperationAction(ISD::FDIV, VT, Expand);
|
||||
setOperationAction(ISD::FREM, VT, Expand);
|
||||
}
|
||||
}
|
||||
|
||||
// We 'support' these types up to bitcast/load/store level, regardless of
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue