Skip to content

Commit fc64346

Browse files
committed
More work
1 parent 73e5035 commit fc64346

File tree

4 files changed

+30
-4
lines changed

4 files changed

+30
-4
lines changed

src/coreclr/jit/fgdiagnostic.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3459,6 +3459,10 @@ void Compiler::fgDebugCheckFlags(GenTree* tree, BasicBlock* block)
34593459

34603460
#if defined(TARGET_ARM64)
34613461
case NI_ArmBase_Yield:
3462+
case NI_Sve_PrefetchBytes:
3463+
case NI_Sve_PrefetchInt16:
3464+
case NI_Sve_PrefetchInt32:
3465+
case NI_Sve_PrefetchInt64:
34623466
{
34633467
assert(tree->OperRequiresCallFlag(this));
34643468
expectedFlags |= GTF_GLOB_REF;

src/coreclr/jit/gentree.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27315,6 +27315,10 @@ bool GenTreeHWIntrinsic::OperRequiresCallFlag() const
2731527315

2731627316
#if defined(TARGET_ARM64)
2731727317
case NI_ArmBase_Yield:
27318+
case NI_Sve_PrefetchBytes:
27319+
case NI_Sve_PrefetchInt16:
27320+
case NI_Sve_PrefetchInt32:
27321+
case NI_Sve_PrefetchInt64:
2731827322
{
2731927323
return true;
2732027324
}
@@ -27497,6 +27501,10 @@ void GenTreeHWIntrinsic::Initialize(NamedIntrinsic intrinsicId)
2749727501

2749827502
#if defined(TARGET_ARM64)
2749927503
case NI_ArmBase_Yield:
27504+
case NI_Sve_PrefetchBytes:
27505+
case NI_Sve_PrefetchInt16:
27506+
case NI_Sve_PrefetchInt32:
27507+
case NI_Sve_PrefetchInt64:
2750027508
{
2750127509
// Mark as a call and global reference, much as is done for GT_KEEPALIVE
2750227510
gtFlags |= (GTF_CALL | GTF_GLOB_REF);

src/coreclr/jit/hwintrinsiccodegenarm64.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,6 @@ void CodeGen::genHWIntrinsic(GenTreeHWIntrinsic* node)
306306
}
307307
else if (intrin.category == HW_Category_Special)
308308
{
309-
assert(intrin.id == NI_ArmBase_Yield);
310-
311309
emitSize = EA_UNKNOWN;
312310
opt = INS_OPTS_NONE;
313311
}

src/tests/JIT/HardwareIntrinsics/Arm/Shared/SvePrefetchTest.template

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,15 @@ namespace JIT.HardwareIntrinsics.Arm
154154
{Isa}.{Method}(loadMask, ({Op1BaseType}*)(_dataTable.inArrayPtr), (SvePrefetchType)7);
155155
{Isa}.{Method}(loadMask, ({Op1BaseType}*)(_dataTable.inArrayPtr), (SvePrefetchType)14);
156156
{Isa}.{Method}(loadMask, ({Op1BaseType}*)(_dataTable.inArrayPtr), (SvePrefetchType)15);
157-
{Isa}.{Method}(loadMask, ({Op1BaseType}*)(_dataTable.inArrayPtr), (SvePrefetchType)123);
157+
158+
try
159+
{
160+
{Isa}.{Method}(loadMask, ({Op1BaseType}*)(_dataTable.inArrayPtr), (SvePrefetchType)123);
161+
Succeeded = false;
162+
}
163+
catch (ArgumentException)
164+
{
165+
}
158166

159167
PrefetchWrapper(SvePrefetchType.SV_PLDL1KEEP);
160168
PrefetchWrapper(SvePrefetchType.SV_PLDL1STRM);
@@ -172,7 +180,15 @@ namespace JIT.HardwareIntrinsics.Arm
172180
PrefetchWrapper((SvePrefetchType)7);
173181
PrefetchWrapper((SvePrefetchType)14);
174182
PrefetchWrapper((SvePrefetchType)15);
175-
PrefetchWrapper((SvePrefetchType)123);
183+
184+
try
185+
{
186+
PrefetchWrapper((SvePrefetchType)123);
187+
Succeeded = false;
188+
}
189+
catch (ArgumentException)
190+
{
191+
}
176192
}
177193

178194
public void RunBasicScenario_FalseMask()

0 commit comments

Comments
 (0)