mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
Initial support for Neon scalar instructions.
Patch by Ana Pazos. 1.Added support for v1ix and v1fx types. 2.Added Scalar Pairwise Reduce instructions. 3.Added initial implementation of Scalar Arithmetic instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191263 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -134,6 +134,7 @@ std::string EVT::getEVTString() const {
|
||||
case MVT::v16i1: return "v16i1";
|
||||
case MVT::v32i1: return "v32i1";
|
||||
case MVT::v64i1: return "v64i1";
|
||||
case MVT::v1i8: return "v1i8";
|
||||
case MVT::v2i8: return "v2i8";
|
||||
case MVT::v4i8: return "v4i8";
|
||||
case MVT::v8i8: return "v8i8";
|
||||
@@ -156,12 +157,14 @@ std::string EVT::getEVTString() const {
|
||||
case MVT::v4i64: return "v4i64";
|
||||
case MVT::v8i64: return "v8i64";
|
||||
case MVT::v16i64: return "v16i64";
|
||||
case MVT::v1f32: return "v1f32";
|
||||
case MVT::v2f32: return "v2f32";
|
||||
case MVT::v2f16: return "v2f16";
|
||||
case MVT::v8f16: return "v8f16";
|
||||
case MVT::v4f32: return "v4f32";
|
||||
case MVT::v8f32: return "v8f32";
|
||||
case MVT::v16f32: return "v16f32";
|
||||
case MVT::v1f64: return "v1f64";
|
||||
case MVT::v2f64: return "v2f64";
|
||||
case MVT::v4f64: return "v4f64";
|
||||
case MVT::v8f64: return "v8f64";
|
||||
@@ -198,6 +201,7 @@ Type *EVT::getTypeForEVT(LLVMContext &Context) const {
|
||||
case MVT::v16i1: return VectorType::get(Type::getInt1Ty(Context), 16);
|
||||
case MVT::v32i1: return VectorType::get(Type::getInt1Ty(Context), 32);
|
||||
case MVT::v64i1: return VectorType::get(Type::getInt1Ty(Context), 64);
|
||||
case MVT::v1i8: return VectorType::get(Type::getInt8Ty(Context), 1);
|
||||
case MVT::v2i8: return VectorType::get(Type::getInt8Ty(Context), 2);
|
||||
case MVT::v4i8: return VectorType::get(Type::getInt8Ty(Context), 4);
|
||||
case MVT::v8i8: return VectorType::get(Type::getInt8Ty(Context), 8);
|
||||
@@ -222,10 +226,12 @@ Type *EVT::getTypeForEVT(LLVMContext &Context) const {
|
||||
case MVT::v16i64: return VectorType::get(Type::getInt64Ty(Context), 16);
|
||||
case MVT::v2f16: return VectorType::get(Type::getHalfTy(Context), 2);
|
||||
case MVT::v8f16: return VectorType::get(Type::getHalfTy(Context), 8);
|
||||
case MVT::v1f32: return VectorType::get(Type::getFloatTy(Context), 1);
|
||||
case MVT::v2f32: return VectorType::get(Type::getFloatTy(Context), 2);
|
||||
case MVT::v4f32: return VectorType::get(Type::getFloatTy(Context), 4);
|
||||
case MVT::v8f32: return VectorType::get(Type::getFloatTy(Context), 8);
|
||||
case MVT::v16f32: return VectorType::get(Type::getFloatTy(Context), 16);
|
||||
case MVT::v1f64: return VectorType::get(Type::getDoubleTy(Context), 1);
|
||||
case MVT::v2f64: return VectorType::get(Type::getDoubleTy(Context), 2);
|
||||
case MVT::v4f64: return VectorType::get(Type::getDoubleTy(Context), 4);
|
||||
case MVT::v8f64: return VectorType::get(Type::getDoubleTy(Context), 8);
|
||||
|
||||
Reference in New Issue
Block a user