genConsumeRegs(op3);
regNumber op1Reg = op1->gtRegNum;
- regNumber op3Reg = op3->gtRegNum;
assert(genIsValidFloatReg(targetReg));
assert(genIsValidFloatReg(op1Reg));
if (op3->isContained())
{
// Handle vector element to vector element case
+ regNumber op3Reg = op3->gtGetOp1()->gtRegNum;
+
assert(genIsValidFloatReg(op3Reg));
assert(op2->isContainedIntOrIImmed());
assert(op3->OperIs(GT_HWIntrinsic));
{
// Handle scalar to vector element case
// TODO-ARM64-CQ handle containing scalar const where possible
+ regNumber op3Reg = op3->gtRegNum;
+
auto emitSwCase = [&](int element) {
assert(element >= 0);
assert(element < elements);
GenTree* op3 = argList->Rest()->Rest()->Current();
-#if NYI_ARM64_HW_INTRINSIC_CONTAINMENT
// TODO-ARM64-CQ Support containing NI_ARM64_SIMD_GetItem (vector element to element move)
if (op3->OperIs(GT_HWIntrinsic) && (op3->AsHWIntrinsic()->gtHWIntrinsicId == NI_ARM64_SIMD_GetItem))
{
MakeSrcContained(node, op3);
}
}
-#endif // NYI_ARM64_HW_INTRINSIC_CONTAINMENT
}
break;