Teach the AArch64 backend about v4f16 and v8f16

This teaches the AArch64 backend to deal with the operations required
to deal with the operations on v4f16 and v8f16 which are exposed by
NEON intrinsics, plus the add, sub, mul and div operations.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216555 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Oliver Stannard
2014-08-27 16:16:04 +00:00
parent b8c95a89e6
commit 5e487f8dc7
15 changed files with 1893 additions and 132 deletions
+6 -3
View File
@@ -196,21 +196,24 @@ namespace llvm {
/// is32BitVector - Return true if this is a 32-bit vector type.
bool is32BitVector() const {
return (SimpleTy == MVT::v4i8 || SimpleTy == MVT::v2i16 ||
SimpleTy == MVT::v1i32);
SimpleTy == MVT::v1i32 || SimpleTy == MVT::v2f16 ||
SimpleTy == MVT::v1f32);
}
/// is64BitVector - Return true if this is a 64-bit vector type.
bool is64BitVector() const {
return (SimpleTy == MVT::v8i8 || SimpleTy == MVT::v4i16 ||
SimpleTy == MVT::v2i32 || SimpleTy == MVT::v1i64 ||
SimpleTy == MVT::v1f64 || SimpleTy == MVT::v2f32);
SimpleTy == MVT::v4f16 || SimpleTy == MVT::v2f32 ||
SimpleTy == MVT::v1f64);
}
/// is128BitVector - Return true if this is a 128-bit vector type.
bool is128BitVector() const {
return (SimpleTy == MVT::v16i8 || SimpleTy == MVT::v8i16 ||
SimpleTy == MVT::v4i32 || SimpleTy == MVT::v2i64 ||
SimpleTy == MVT::v4f32 || SimpleTy == MVT::v2f64);
SimpleTy == MVT::v8f16 || SimpleTy == MVT::v4f32 ||
SimpleTy == MVT::v2f64);
}
/// is256BitVector - Return true if this is a 256-bit vector type.