diff options
author | Fei Peng <feipeng.compiler@gmail.com> | 2019-03-29 14:28:30 -0700 |
---|---|---|
committer | Tanner Gooding <tagoo@outlook.com> | 2019-03-29 14:28:30 -0700 |
commit | 4a4ba4d379002c8b8e77ef968f510cf0283201d0 (patch) | |
tree | 84896b322d12fc6b5b2e97ff720905d20d50186f /src/jit/hwintrinsiclistArm64.h | |
parent | 4e5a542537ea73c94d3443d9c82b05c744f76758 (diff) | |
download | coreclr-4a4ba4d379002c8b8e77ef968f510cf0283201d0.tar.gz coreclr-4a4ba4d379002c8b8e77ef968f510cf0283201d0.tar.bz2 coreclr-4a4ba4d379002c8b8e77ef968f510cf0283201d0.zip |
Simplify and unify Vector64/128/256 platform-agnostic intrinsic handling (#23028)
* Simplify and unify Vector64/128/256 platform-agnostic intrinsic handling
* Removed unsupported ISAs
Diffstat (limited to 'src/jit/hwintrinsiclistArm64.h')
-rw-r--r-- | src/jit/hwintrinsiclistArm64.h | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/jit/hwintrinsiclistArm64.h b/src/jit/hwintrinsiclistArm64.h index cbf60c7374..e61999e3aa 100644 --- a/src/jit/hwintrinsiclistArm64.h +++ b/src/jit/hwintrinsiclistArm64.h @@ -35,30 +35,35 @@ HARDWARE_INTRINSIC_CLASS(JIT_FLAG_HAS_ARM64_SVE , EnableArm64Sve , Sv #endif // defined(HARDWARE_INTRINSIC_CLASS) #if defined(HARDWARE_INTRINSIC) -// (ID Class Function name Form Floating, Signed, Unsigned, Flags) +// (ID Class Function name Form Floating, Signed, Unsigned, Flags) // None (For internal use only) -HARDWARE_INTRINSIC(NI_ARM64_NONE_MOV, None, None, UnaryOp, INS_mov, INS_mov, INS_mov, None ) +HARDWARE_INTRINSIC(NI_ARM64_NONE_MOV, None, None, UnaryOp, INS_mov, INS_mov, INS_mov, None ) + // Base -HARDWARE_INTRINSIC(NI_ARM64_BASE_CLS, Base, LeadingSignCount, UnaryOp, INS_invalid, INS_cls, INS_cls, None ) -HARDWARE_INTRINSIC(NI_ARM64_BASE_CLZ, Base, LeadingZeroCount, UnaryOp, INS_invalid, INS_clz, INS_clz, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsByte, Base, AsByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsInt16, Base, AsInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsInt32, Base, AsInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsSByte, Base, AsSByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsSingle, Base, AsSingle, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsUInt16, Base, AsUInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector64_AsUInt32, Base, AsUInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_As, Base, As, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsByte, Base, AsByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsDouble, Base, AsDouble, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsInt16, Base, AsInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsInt32, Base, AsInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsInt64, Base, AsInt64, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsSByte, Base, AsSByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsSingle, Base, AsSingle, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsUInt16, Base, AsUInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsUInt32, Base, AsUInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) -HARDWARE_INTRINSIC(NI_Base_Vector128_AsUInt64, Base, AsUInt64, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_ARM64_BASE_CLS, Base, LeadingSignCount, UnaryOp, INS_invalid, INS_cls, INS_cls, None ) +HARDWARE_INTRINSIC(NI_ARM64_BASE_CLZ, Base, LeadingZeroCount, UnaryOp, INS_invalid, INS_clz, INS_clz, None ) + +// Vector64 +HARDWARE_INTRINSIC(NI_Vector64_AsByte, Vector64, AsByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector64_AsInt16, Vector64, AsInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector64_AsInt32, Vector64, AsInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector64_AsSByte, Vector64, AsSByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector64_AsSingle, Vector64, AsSingle, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector64_AsUInt16, Vector64, AsUInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector64_AsUInt32, Vector64, AsUInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) + +// Vector128 +HARDWARE_INTRINSIC(NI_Vector128_As, Vector128, As, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsByte, Vector128, AsByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsDouble, Vector128, AsDouble, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsInt16, Vector128, AsInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsInt32, Vector128, AsInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsInt64, Vector128, AsInt64, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsSByte, Vector128, AsSByte, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsSingle, Vector128, AsSingle, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsUInt16, Vector128, AsUInt16, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsUInt32, Vector128, AsUInt32, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) +HARDWARE_INTRINSIC(NI_Vector128_AsUInt64, Vector128, AsUInt64, UnaryOp, INS_invalid, INS_invalid, INS_invalid, None ) #if NYI // Crc32 HARDWARE_INTRINSIC(NI_ARM64_CRC32_CRC32, Crc32, Crc32, CrcOp, INS_invalid, INS_invalid, INS_crc32, None ) |