Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit d36b8e1

Browse files
Merge pull request #15772 from tannergooding/hwintrin-expand
Updating the x86 HWIntrinsic importer to not inline when returning gtNewMustThrowException
2 parents 2c254c4 + 6d910b4 commit d36b8e1

File tree

3 files changed

+207
-63
lines changed

3 files changed

+207
-63
lines changed

src/jit/compiler.h

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3028,22 +3028,74 @@ class Compiler
30283028
bool isIntrinsicAnIsSupportedPropertyGetter(NamedIntrinsic intrinsic);
30293029
bool isFullyImplmentedISAClass(InstructionSet isa);
30303030
#ifdef _TARGET_XARCH_
3031-
GenTree* impX86HWIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3032-
GenTree* impSSEIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3033-
GenTree* impSSE2Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3034-
GenTree* impSSE3Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3035-
GenTree* impSSSE3Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3036-
GenTree* impSSE41Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3037-
GenTree* impSSE42Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3038-
GenTree* impAVXIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3039-
GenTree* impAVX2Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3040-
GenTree* impAESIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3041-
GenTree* impBMI1Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3042-
GenTree* impBMI2Intrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3043-
GenTree* impFMAIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3044-
GenTree* impLZCNTIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3045-
GenTree* impPCLMULQDQIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3046-
GenTree* impPOPCNTIntrinsic(NamedIntrinsic intrinsic, CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig);
3031+
GenTree* impUnsupportedHWIntrinsic(unsigned helper,
3032+
CORINFO_METHOD_HANDLE method,
3033+
CORINFO_SIG_INFO* sig,
3034+
bool mustExpand);
3035+
GenTree* impX86HWIntrinsic(NamedIntrinsic intrinsic,
3036+
CORINFO_METHOD_HANDLE method,
3037+
CORINFO_SIG_INFO* sig,
3038+
bool mustExpand);
3039+
GenTree* impSSEIntrinsic(NamedIntrinsic intrinsic,
3040+
CORINFO_METHOD_HANDLE method,
3041+
CORINFO_SIG_INFO* sig,
3042+
bool mustExpand);
3043+
GenTree* impSSE2Intrinsic(NamedIntrinsic intrinsic,
3044+
CORINFO_METHOD_HANDLE method,
3045+
CORINFO_SIG_INFO* sig,
3046+
bool mustExpand);
3047+
GenTree* impSSE3Intrinsic(NamedIntrinsic intrinsic,
3048+
CORINFO_METHOD_HANDLE method,
3049+
CORINFO_SIG_INFO* sig,
3050+
bool mustExpand);
3051+
GenTree* impSSSE3Intrinsic(NamedIntrinsic intrinsic,
3052+
CORINFO_METHOD_HANDLE method,
3053+
CORINFO_SIG_INFO* sig,
3054+
bool mustExpand);
3055+
GenTree* impSSE41Intrinsic(NamedIntrinsic intrinsic,
3056+
CORINFO_METHOD_HANDLE method,
3057+
CORINFO_SIG_INFO* sig,
3058+
bool mustExpand);
3059+
GenTree* impSSE42Intrinsic(NamedIntrinsic intrinsic,
3060+
CORINFO_METHOD_HANDLE method,
3061+
CORINFO_SIG_INFO* sig,
3062+
bool mustExpand);
3063+
GenTree* impAVXIntrinsic(NamedIntrinsic intrinsic,
3064+
CORINFO_METHOD_HANDLE method,
3065+
CORINFO_SIG_INFO* sig,
3066+
bool mustExpand);
3067+
GenTree* impAVX2Intrinsic(NamedIntrinsic intrinsic,
3068+
CORINFO_METHOD_HANDLE method,
3069+
CORINFO_SIG_INFO* sig,
3070+
bool mustExpand);
3071+
GenTree* impAESIntrinsic(NamedIntrinsic intrinsic,
3072+
CORINFO_METHOD_HANDLE method,
3073+
CORINFO_SIG_INFO* sig,
3074+
bool mustExpand);
3075+
GenTree* impBMI1Intrinsic(NamedIntrinsic intrinsic,
3076+
CORINFO_METHOD_HANDLE method,
3077+
CORINFO_SIG_INFO* sig,
3078+
bool mustExpand);
3079+
GenTree* impBMI2Intrinsic(NamedIntrinsic intrinsic,
3080+
CORINFO_METHOD_HANDLE method,
3081+
CORINFO_SIG_INFO* sig,
3082+
bool mustExpand);
3083+
GenTree* impFMAIntrinsic(NamedIntrinsic intrinsic,
3084+
CORINFO_METHOD_HANDLE method,
3085+
CORINFO_SIG_INFO* sig,
3086+
bool mustExpand);
3087+
GenTree* impLZCNTIntrinsic(NamedIntrinsic intrinsic,
3088+
CORINFO_METHOD_HANDLE method,
3089+
CORINFO_SIG_INFO* sig,
3090+
bool mustExpand);
3091+
GenTree* impPCLMULQDQIntrinsic(NamedIntrinsic intrinsic,
3092+
CORINFO_METHOD_HANDLE method,
3093+
CORINFO_SIG_INFO* sig,
3094+
bool mustExpand);
3095+
GenTree* impPOPCNTIntrinsic(NamedIntrinsic intrinsic,
3096+
CORINFO_METHOD_HANDLE method,
3097+
CORINFO_SIG_INFO* sig,
3098+
bool mustExpand);
30473099
bool compSupportsHWIntrinsic(InstructionSet isa);
30483100
bool isScalarISA(InstructionSet isa);
30493101
#endif // _TARGET_XARCH_

0 commit comments

Comments
 (0)