@@ -325,7 +325,41 @@ VECTOR_OPERATION_MACRO(\
325325 /* .ifCompareOpCode = */ TR::BadILOp, \
326326 /* .description = mask exclusive OR*/ \
327327)
328- // vector mask conversion opcodes
328+ // vector mask to/from array opcodes
329+ VECTOR_OPERATION_MACRO(\
330+ /* .operation = */ mloadiFromArray, \
331+ /* .name = */ "mloadiFromArray", \
332+ /* .properties1 = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
333+ /* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
334+ /* .properties3 = */ ILProp3::LikeUse, \
335+ /* .properties4 = */ 0, \
336+ /* .dataType = */ TR::NoType, \
337+ /* .typeProperties = */ ILTypeProp::MaskResult, \
338+ /* .childProperties = */ ONE_CHILD(TR::Address), \
339+ /* .swapChildrenOperation = */ TR::vBadOperation, \
340+ /* .reverseBranchOperation = */ TR::vBadOperation, \
341+ /* .booleanCompareOpCode = */ TR::BadILOp, \
342+ /* .ifCompareOpCode = */ TR::BadILOp, \
343+ /* .description = load from array and convert to vector mask. assumes that a value of 1 is true and 0 is false*/ \
344+ )
345+ VECTOR_OPERATION_MACRO(\
346+ /* .operation = */ mstoreiToArray, \
347+ /* .name = */ "mstoreiToArray", \
348+ /* .properties1 = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
349+ /* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
350+ /* .properties3 = */ ILProp3::LikeDef, \
351+ /* .properties4 = */ 0, \
352+ /* .dataType = */ TR::NoType, \
353+ /* .typeProperties = */ ILTypeProp::MaskResult, \
354+ /* .childProperties = */ TWO_CHILD(TR::Address, ILChildProp::UnspecifiedChildType), \
355+ /* .swapChildrenOperation = */ TR::vBadOperation, \
356+ /* .reverseBranchOperation = */ TR::vBadOperation, \
357+ /* .booleanCompareOpCode = */ TR::BadILOp, \
358+ /* .ifCompareOpCode = */ TR::BadILOp, \
359+ /* .description = convert from vector mask and store to array. assumes that a value of 1 is true and 0 is false*/ \
360+ )
361+
362+ // vector mask conversion opcodes (TO BE REMOVED)
329363VECTOR_OPERATION_MACRO(\
330364 /* .operation = */ b2m, \
331365 /* .name = */ "b2m", \
0 commit comments