< prev index next >

src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java

Print this page
rev 49829 : Suball for short+byte intrinsics


 428     @Override
 429     @ForceInline
 430     public long addAll() {
 431         return (long) VectorIntrinsics.reductionCoerced(
 432             VECTOR_OP_ADD, Long256Vector.class, long.class, LENGTH,
 433             this,
 434             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a + b)));
 435     }
 436 
 437     @Override
 438     @ForceInline
 439     public long andAll() {
 440         return (long) VectorIntrinsics.reductionCoerced(
 441             VECTOR_OP_AND, Long256Vector.class, long.class, LENGTH,
 442             this,
 443             v -> (long) v.rOp((long) -1, (i, a, b) -> (long) (a & b)));
 444     }
 445 
 446     @Override
 447     @ForceInline









 448     public long mulAll() {
 449         return (long) VectorIntrinsics.reductionCoerced(
 450             VECTOR_OP_MUL, Long256Vector.class, long.class, LENGTH,
 451             this,
 452             v -> (long) v.rOp((long) 1, (i, a, b) -> (long) (a * b)));
 453     }
 454 
 455     @Override
 456     @ForceInline
 457     public long orAll() {
 458         return (long) VectorIntrinsics.reductionCoerced(
 459             VECTOR_OP_OR, Long256Vector.class, long.class, LENGTH,
 460             this,
 461             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a | b)));
 462     }
 463 
 464     @Override
 465     @ForceInline
 466     public long xorAll() {
 467         return (long) VectorIntrinsics.reductionCoerced(
 468             VECTOR_OP_XOR, Long256Vector.class, long.class, LENGTH,
 469             this,
 470             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a ^ b)));
 471     }
 472 
 473     @Override
 474     @ForceInline
 475     public long subAll() {
 476         return (long) VectorIntrinsics.reductionCoerced(
 477             VECTOR_OP_SUB, Long256Vector.class, long.class, LENGTH,
 478             this,
 479             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a - b)));
 480     }
 481 
 482     // Memory operations
 483 
 484     @Override
 485     @ForceInline
 486     public void intoArray(long[] a, int ix) {
 487         Objects.requireNonNull(a);
 488         ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
 489         VectorIntrinsics.store(Long256Vector.class, long.class, LENGTH,
 490                                a, ix, this,
 491                                (arr, idx, v) -> v.forEach((i, a_) -> ((long[])arr)[idx + i] = a_));
 492     }
 493 
 494     @Override
 495     @ForceInline
 496     public void intoArray(long[] a, int ax, Mask<Long, Shapes.S256Bit> m) {
 497         // TODO: use better default impl: forEach(m, (i, a_) -> a[ax + i] = a_);
 498         Long256Vector oldVal = SPECIES.fromArray(a, ax);
 499         Long256Vector newVal = oldVal.blend(this, m);




 428     @Override
 429     @ForceInline
 430     public long addAll() {
 431         return (long) VectorIntrinsics.reductionCoerced(
 432             VECTOR_OP_ADD, Long256Vector.class, long.class, LENGTH,
 433             this,
 434             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a + b)));
 435     }
 436 
 437     @Override
 438     @ForceInline
 439     public long andAll() {
 440         return (long) VectorIntrinsics.reductionCoerced(
 441             VECTOR_OP_AND, Long256Vector.class, long.class, LENGTH,
 442             this,
 443             v -> (long) v.rOp((long) -1, (i, a, b) -> (long) (a & b)));
 444     }
 445 
 446     @Override
 447     @ForceInline
 448     public long subAll() {
 449         return (long) VectorIntrinsics.reductionCoerced(
 450             VECTOR_OP_SUB, Long256Vector.class, long.class, LENGTH,
 451             this,
 452             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a - b)));
 453     }
 454 
 455     @Override
 456     @ForceInline
 457     public long mulAll() {
 458         return (long) VectorIntrinsics.reductionCoerced(
 459             VECTOR_OP_MUL, Long256Vector.class, long.class, LENGTH,
 460             this,
 461             v -> (long) v.rOp((long) 1, (i, a, b) -> (long) (a * b)));
 462     }
 463 
 464     @Override
 465     @ForceInline
 466     public long orAll() {
 467         return (long) VectorIntrinsics.reductionCoerced(
 468             VECTOR_OP_OR, Long256Vector.class, long.class, LENGTH,
 469             this,
 470             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a | b)));
 471     }
 472 
 473     @Override
 474     @ForceInline
 475     public long xorAll() {
 476         return (long) VectorIntrinsics.reductionCoerced(
 477             VECTOR_OP_XOR, Long256Vector.class, long.class, LENGTH,
 478             this,
 479             v -> (long) v.rOp((long) 0, (i, a, b) -> (long) (a ^ b)));









 480     }
 481 
 482     // Memory operations
 483 
 484     @Override
 485     @ForceInline
 486     public void intoArray(long[] a, int ix) {
 487         Objects.requireNonNull(a);
 488         ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
 489         VectorIntrinsics.store(Long256Vector.class, long.class, LENGTH,
 490                                a, ix, this,
 491                                (arr, idx, v) -> v.forEach((i, a_) -> ((long[])arr)[idx + i] = a_));
 492     }
 493 
 494     @Override
 495     @ForceInline
 496     public void intoArray(long[] a, int ax, Mask<Long, Shapes.S256Bit> m) {
 497         // TODO: use better default impl: forEach(m, (i, a_) -> a[ax + i] = a_);
 498         Long256Vector oldVal = SPECIES.fromArray(a, ax);
 499         Long256Vector newVal = oldVal.blend(this, m);


< prev index next >