@@ -67,12 +67,19 @@ TR_VectorAPIExpansion::perform()
67
67
}
68
68
69
69
bool
70
- TR_VectorAPIExpansion::isVectorAPIMethod (TR::MethodSymbol *methodSymbol)
70
+ TR_VectorAPIExpansion::isVectorAPIMethod (TR::MethodSymbol *methodSymbol, bool reportAllMethods )
71
71
{
72
72
TR::RecognizedMethod index = methodSymbol->getRecognizedMethod ();
73
73
74
- return (index >= _firstMethod &&
75
- index <= _lastMethod);
74
+ if (index >= _firstMethod && index <= _lastMethod)
75
+ {
76
+ return (reportAllMethods ||
77
+ (methodTable[index - _firstMethod]._returnType != Invalid));
78
+ }
79
+ else
80
+ {
81
+ return false ;
82
+ }
76
83
}
77
84
78
85
TR_VectorAPIExpansion::vapiObjType
@@ -1082,12 +1089,21 @@ TR_VectorAPIExpansion::findVectorMethods(TR::Compilation *comp, bool reportFound
1082
1089
{
1083
1090
TR::MethodSymbol *methodSymbol = node->getSymbolReference ()->getSymbol ()->castToMethodSymbol ();
1084
1091
1085
- if (isVectorAPIMethod (methodSymbol))
1092
+ if (isVectorAPIMethod (methodSymbol, reportFoundMethods ))
1086
1093
{
1087
1094
if (reportFoundMethods &&
1088
1095
TR::Options::getVerboseOption (TR_VerboseVectorAPI))
1089
1096
{
1090
- TR_VerboseLog::writeLine (TR_Vlog_VECTOR_API, " Did not vectorize intrinsic in %s at %s %s" ,
1097
+ TR::ResolvedMethodSymbol *resolvedMethodSymbol = (TR::ResolvedMethodSymbol *)methodSymbol;
1098
+
1099
+ const char *name = resolvedMethodSymbol->getResolvedMethod () ? resolvedMethodSymbol->getResolvedMethod ()->nameChars ()
1100
+ : " unresolved" ;
1101
+
1102
+ uint16_t nameLen = resolvedMethodSymbol->getResolvedMethod () ? resolvedMethodSymbol->getResolvedMethod ()->nameLength ()
1103
+ : 10 ; // length of "unresolved"
1104
+
1105
+ TR_VerboseLog::writeLine (TR_Vlog_VECTOR_API, " Did not vectorize %.*s() intrinsic in %s at %s %s" ,
1106
+ name ? nameLen : 0 , name ? name : " " ,
1091
1107
comp->signature (), comp->getHotnessName (comp->getMethodHotness ()),
1092
1108
comp->isDLT () ? " DLT" : " " );
1093
1109
}
@@ -3778,12 +3794,26 @@ TR_VectorAPIExpansion::methodTable[] =
3778
3794
{compareIntrinsicHandler, Mask, 1 , 2 , 3 , 4 , 5 , 2 , 7 , {Unknown, Unknown, Unknown, ElementType, NumLanes, Vector, Vector, Mask}}, // jdk_internal_vm_vector_VectorSupport_compare
3779
3795
{compressExpandOpIntrinsicHandler, Unknown, 1 , 2 , 3 , 4 , 5 , 2 , -1 , {Unknown, Unknown, Unknown, ElementType, NumLanes, Vector, Mask}}, // jdk_internal_vm_vector_VectorSupport_compressExpandOp
3780
3796
{convertIntrinsicHandler, Unknown, 1 , 4 , 5 , 6 , 7 , 1 , -1 , {Unknown, Unknown, ElementType, NumLanes, Unknown, Unknown, Unknown, Vector}}, // jdk_internal_vm_vector_VectorSupport_convert
3797
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_extract
3781
3798
{fromBitsCoercedIntrinsicHandler, Unknown, 0 , -1 , 1 , 2 , -1 , 0 , -1 , {Unknown, ElementType, NumLanes, Unknown, Unknown, Unknown}}, // jdk_internal_vm_vector_VectorSupport_fromBitsCoerced
3799
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_indexPartiallyInUpperRange
3800
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_indexVector
3801
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_insert
3802
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_loadMasked
3803
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_loadWithMap
3782
3804
{maskReductionCoercedIntrinsicHandler, Scalar, 1 , -1 , 2 , 3 , 4 , 1 , -1 , {Unknown, Unknown, ElementType, NumLanes, Mask}}, // jdk_internal_vm_vector_VectorSupport_maskReductionCoerced
3805
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_rearrangeOp
3783
3806
{reductionCoercedIntrinsicHandler, Scalar, 1 , 2 , 3 , 4 , 5 , 1 , 6 , {Unknown, Unknown, Unknown, ElementType, NumLanes, Vector, Mask}}, // jdk_internal_vm_vector_VectorSupport_reductionCoerced
3807
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_selectFromOp
3808
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_selectFromTwoVectorOp
3809
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_shuffleIota
3810
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_shuffleToVector
3811
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_storeMasked
3812
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_storeWithMap
3784
3813
{ternaryIntrinsicHandler, Vector, 1 , 2 , 3 , 4 , 5 , 3 , 8 , {Unknown, Unknown, Unknown, ElementType, NumLanes, Vector, Vector, Vector, Mask}}, // jdk_internal_vm_vector_VectorSupport_ternaryOp
3785
3814
{testIntrinsicHandler, Scalar, 1 , -1 , 2 , 3 , 4 , 1 , 5 , {Unknown, Unknown, ElementType, NumLanes, Mask, Mask, Unknown}}, // jdk_internal_vm_vector_VectorSupport_test
3786
3815
{unaryIntrinsicHandler, Vector, 1 , 2 , 3 , 4 , 5 , 1 , 6 , {Unknown, Unknown, Unknown, ElementType, NumLanes, Vector, Mask}}, // jdk_internal_vm_vector_VectorSupport_unaryOp
3816
+ {unsupportedHandler, Invalid}, // jdk_internal_vm_vector_VectorSupport_wrapShuffleIndexes
3787
3817
};
3788
3818
3789
3819
0 commit comments