@@ -3238,16 +3238,6 @@ TR::ILOpCodes TR_VectorAPIExpansion::ILOpcodeFromVectorAPIOpcode(TR::Compilation
3238
3238
vapiObjType objectType, vapiOpCodeType opCodeType, bool withMask,
3239
3239
TR::DataType sourceElementType, TR::VectorLength sourceVectorLength)
3240
3240
{
3241
- // Skip some unsupported operations on Mask for now (e.g. binary operation on Mask). TODO: implement
3242
- if (objectType == Mask &&
3243
- vectorAPIOpCode != VECTOR_OP_MASK_COMPRESS &&
3244
- opCodeType != Test &&
3245
- opCodeType != MaskReduction &&
3246
- opCodeType != Compare) // for Compare, objectType is Mask (the result) but the operands are always vectors
3247
- {
3248
- return reportMissingOpCode (comp, vectorAPIOpCode, objectType, opCodeType, withMask);
3249
- }
3250
-
3251
3241
// TODO: support more scalarization
3252
3242
3253
3243
bool scalar = (vectorLength == TR::NoVectorLength);
@@ -3462,9 +3452,9 @@ TR::ILOpCodes TR_VectorAPIExpansion::ILOpcodeFromVectorAPIOpcode(TR::Compilation
3462
3452
case VECTOR_OP_DIV: return scalar ? TR::ILOpCode::divideOpCode (elementType) : TR::ILOpCode::createVectorOpCode (TR::vdiv, vectorType);
3463
3453
case VECTOR_OP_MIN: return scalar ? TR::BadILOp : TR::ILOpCode::createVectorOpCode (TR::vmin, vectorType);
3464
3454
case VECTOR_OP_MAX: return scalar ? TR::BadILOp : TR::ILOpCode::createVectorOpCode (TR::vmax, vectorType);
3465
- case VECTOR_OP_AND: return scalar ? TR::ILOpCode::andOpCode (elementType) : TR::ILOpCode::createVectorOpCode (TR::vand, vectorType);
3466
- case VECTOR_OP_OR: return scalar ? TR::ILOpCode::orOpCode (elementType) : TR::ILOpCode::createVectorOpCode (TR::vor, vectorType);
3467
- case VECTOR_OP_XOR: return scalar ? TR::ILOpCode::xorOpCode (elementType) : TR::ILOpCode::createVectorOpCode (TR::vxor, vectorType);
3455
+ case VECTOR_OP_AND: return scalar ? TR::ILOpCode::andOpCode (elementType) : TR::ILOpCode::createVectorOpCode (objectType == Vector ? TR::vand : TR::mand , vectorType);
3456
+ case VECTOR_OP_OR: return scalar ? TR::ILOpCode::orOpCode (elementType) : TR::ILOpCode::createVectorOpCode (objectType == Vector ? TR::vor : TR::mor , vectorType);
3457
+ case VECTOR_OP_XOR: return scalar ? TR::ILOpCode::xorOpCode (elementType) : TR::ILOpCode::createVectorOpCode (objectType == Vector ? TR::vxor : TR::mxor , vectorType);
3468
3458
case VECTOR_OP_FMA: return scalar ? TR::BadILOp : TR::ILOpCode::createVectorOpCode (TR::vfma, vectorType);
3469
3459
3470
3460
case VECTOR_OP_LSHIFT: return scalar ? TR::BadILOp : TR::ILOpCode::createVectorOpCode (TR::vshl, vectorType);
0 commit comments