From 08d03ef91cc66e1c21314b9267e685a6e14b9218 Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Thu, 20 Jun 2024 13:49:57 -0700 Subject: [PATCH] Make sure we query get_IsSupported correctly --- src/coreclr/jit/hwintrinsic.cpp | 2 +- src/coreclr/jit/hwintrinsiclistarm64.h | 2 +- src/coreclr/jit/hwintrinsicxarch.cpp | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/coreclr/jit/hwintrinsic.cpp b/src/coreclr/jit/hwintrinsic.cpp index 0876114d5bcfa..f3be218c9b889 100644 --- a/src/coreclr/jit/hwintrinsic.cpp +++ b/src/coreclr/jit/hwintrinsic.cpp @@ -616,7 +616,7 @@ NamedIntrinsic HWIntrinsicInfo::lookupId(Compiler* comp, { isHardwareAcceleratedProp = true; } - else if (strcmp(methodName + 6, "IsSupported") == 0) + else if (strcmp(methodName + 6, "Supported") == 0) { isSupportedProp = true; } diff --git a/src/coreclr/jit/hwintrinsiclistarm64.h b/src/coreclr/jit/hwintrinsiclistarm64.h index ce0db5be228f4..ee8c224e15582 100644 --- a/src/coreclr/jit/hwintrinsiclistarm64.h +++ b/src/coreclr/jit/hwintrinsiclistarm64.h @@ -709,7 +709,7 @@ HARDWARE_INTRINSIC(ArmBase, Yield, // {TYP_BYTE, TYP_UBYTE, TYP_SHORT, TYP_USHORT, TYP_INT, TYP_UINT, TYP_LONG, TYP_ULONG, TYP_FLOAT, TYP_DOUBLE} // *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** // Base 64-bit only Intrinsics -#define FIRST_NI_ArmBase_Arm64 NI_ArmBase_Arm64_LeadingZeroCount +#define FIRST_NI_ArmBase_Arm64 NI_ArmBase_Arm64_LeadingSignCount HARDWARE_INTRINSIC(ArmBase_Arm64, LeadingSignCount, 0, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_cls, INS_invalid, INS_cls, INS_invalid, INS_invalid, INS_invalid}, HW_Category_Scalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_NoFloatingPointUsed) HARDWARE_INTRINSIC(ArmBase_Arm64, LeadingZeroCount, 0, 1, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_clz, INS_clz, INS_invalid, INS_invalid}, HW_Category_Scalar, HW_Flag_BaseTypeFromFirstArg|HW_Flag_NoFloatingPointUsed) HARDWARE_INTRINSIC(ArmBase_Arm64, MultiplyHigh, 0, 2, false, {INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_invalid, INS_smulh, INS_umulh, INS_invalid, INS_invalid}, HW_Category_Scalar, HW_Flag_NoFloatingPointUsed) diff --git a/src/coreclr/jit/hwintrinsicxarch.cpp b/src/coreclr/jit/hwintrinsicxarch.cpp index d451fad31713b..cc455461143ab 100644 --- a/src/coreclr/jit/hwintrinsicxarch.cpp +++ b/src/coreclr/jit/hwintrinsicxarch.cpp @@ -163,7 +163,7 @@ static CORINFO_InstructionSet lookupInstructionSet(const char* className) { return InstructionSet_AVX2; } - else if (strncmp(className + 3, "512", 3)) + else if (strncmp(className + 3, "512", 3) == 0) { if (strcmp(className + 6, "BW") == 0) { @@ -328,10 +328,7 @@ CORINFO_InstructionSet HWIntrinsicInfo::lookupIsa(const char* className, const c { if (strcmp(className, "V512") == 0) { - if (strcmp(className + 2, "12") == 0) - { - return V512VersionOfIsa(enclosingIsa); - } + return V512VersionOfIsa(enclosingIsa); } else if (strcmp(className, "VL") == 0) {