245 } 246 247 /* ============================================================================ */ 248 249 interface VectorCompareOp<V,M> { 250 M apply(V v1, V v2); 251 } 252 253 @HotSpotIntrinsicCandidate 254 static <V extends Vector<E,S>, 255 M extends Vector.Mask<E,S>, 256 S extends Vector.Shape, E> 257 M compare(int cond, Class<V> vectorClass, Class<M> maskClass, Class<?> elementType, int length, 258 V v1, V v2, 259 VectorCompareOp<V,M> defaultImpl) { 260 return defaultImpl.apply(v1, v2); 261 } 262 263 /* ============================================================================ */ 264 265 interface VectorBlendOp<V extends Vector<E,S>, 266 M extends Vector.Mask<E,S>, 267 S extends Vector.Shape, E> { 268 V apply(V v1, V v2, M mask); 269 } 270 271 @HotSpotIntrinsicCandidate 272 static 273 <V extends Vector<E,S>, 274 M extends Vector.Mask<E,S>, 275 S extends Vector.Shape, E> 276 V blend(Class<V> vectorClass, Class<M> maskClass, Class<?> elementType, int length, 277 V v1, V v2, M m, 278 VectorBlendOp<V,M,S,E> defaultImpl) { 279 return defaultImpl.apply(v1, v2, m); 280 } 281 282 /* ============================================================================ */ 283 284 interface VectorBroadcastIntOp<V extends Vector<?,?>> { | 245 } 246 247 /* ============================================================================ */ 248 249 interface VectorCompareOp<V,M> { 250 M apply(V v1, V v2); 251 } 252 253 @HotSpotIntrinsicCandidate 254 static <V extends Vector<E,S>, 255 M extends Vector.Mask<E,S>, 256 S extends Vector.Shape, E> 257 M compare(int cond, Class<V> vectorClass, Class<M> maskClass, Class<?> elementType, int length, 258 V v1, V v2, 259 VectorCompareOp<V,M> defaultImpl) { 260 return defaultImpl.apply(v1, v2); 261 } 262 263 /* ============================================================================ */ 264 265 interface VectorRearrangeOp<V extends Vector<E,S>, 266 Sh extends Vector.Shuffle<E,S>, 267 S extends Vector.Shape, E> { 268 V apply(V v1, Sh shuffle); 269 } 270 271 @HotSpotIntrinsicCandidate 272 static 273 <V extends Vector<E,S>, 274 Sh extends Vector.Shuffle<E,S>, 275 S extends Vector.Shape, E> 276 V rearrangeOp(Class<V> vectorClass, Class<Sh> shuffleClass, Class<?> elementType, int vlen, 277 V v1, Sh sh, 278 VectorRearrangeOp<V,Sh,S,E> defaultImpl) { 279 return defaultImpl.apply(v1, sh); 280 } 281 282 /* ============================================================================ */ 283 284 interface VectorBlendOp<V extends Vector<E,S>, 285 M extends Vector.Mask<E,S>, 286 S extends Vector.Shape, E> { 287 V apply(V v1, V v2, M mask); 288 } 289 290 @HotSpotIntrinsicCandidate 291 static 292 <V extends Vector<E,S>, 293 M extends Vector.Mask<E,S>, 294 S extends Vector.Shape, E> 295 V blend(Class<V> vectorClass, Class<M> maskClass, Class<?> elementType, int length, 296 V v1, V v2, M m, 297 VectorBlendOp<V,M,S,E> defaultImpl) { 298 return defaultImpl.apply(v1, v2, m); 299 } 300 301 /* ============================================================================ */ 302 303 interface VectorBroadcastIntOp<V extends Vector<?,?>> { |