< prev index next >

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

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


 465     @Override
 466     @ForceInline
 467     public int addAll() {
 468         return (int) VectorIntrinsics.reductionCoerced(
 469             VECTOR_OP_ADD, Int256Vector.class, int.class, LENGTH,
 470             this,
 471             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a + b)));
 472     }
 473 
 474     @Override
 475     @ForceInline
 476     public int andAll() {
 477         return (int) VectorIntrinsics.reductionCoerced(
 478             VECTOR_OP_AND, Int256Vector.class, int.class, LENGTH,
 479             this,
 480             v -> (long) v.rOp((int) -1, (i, a, b) -> (int) (a & b)));
 481     }
 482 
 483     @Override
 484     @ForceInline









 485     public int mulAll() {
 486         return (int) VectorIntrinsics.reductionCoerced(
 487             VECTOR_OP_MUL, Int256Vector.class, int.class, LENGTH,
 488             this,
 489             v -> (long) v.rOp((int) 1, (i, a, b) -> (int) (a * b)));
 490     }
 491 
 492     @Override
 493     @ForceInline
 494     public int orAll() {
 495         return (int) VectorIntrinsics.reductionCoerced(
 496             VECTOR_OP_OR, Int256Vector.class, int.class, LENGTH,
 497             this,
 498             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a | b)));
 499     }
 500 
 501     @Override
 502     @ForceInline
 503     public int xorAll() {
 504         return (int) VectorIntrinsics.reductionCoerced(
 505             VECTOR_OP_XOR, Int256Vector.class, int.class, LENGTH,
 506             this,
 507             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a ^ b)));
 508     }
 509 
 510     @Override
 511     @ForceInline
 512     public int subAll() {
 513         return (int) VectorIntrinsics.reductionCoerced(
 514             VECTOR_OP_SUB, Int256Vector.class, int.class, LENGTH,
 515             this,
 516             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a - b)));
 517     }
 518 
 519     // Memory operations
 520 
 521     @Override
 522     @ForceInline
 523     public void intoArray(int[] a, int ix) {
 524         Objects.requireNonNull(a);
 525         ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
 526         VectorIntrinsics.store(Int256Vector.class, int.class, LENGTH,
 527                                a, ix, this,
 528                                (arr, idx, v) -> v.forEach((i, a_) -> ((int[])arr)[idx + i] = a_));
 529     }
 530 
 531     @Override
 532     @ForceInline
 533     public void intoArray(int[] a, int ax, Mask<Integer, Shapes.S256Bit> m) {
 534         // TODO: use better default impl: forEach(m, (i, a_) -> a[ax + i] = a_);
 535         Int256Vector oldVal = SPECIES.fromArray(a, ax);
 536         Int256Vector newVal = oldVal.blend(this, m);




 465     @Override
 466     @ForceInline
 467     public int addAll() {
 468         return (int) VectorIntrinsics.reductionCoerced(
 469             VECTOR_OP_ADD, Int256Vector.class, int.class, LENGTH,
 470             this,
 471             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a + b)));
 472     }
 473 
 474     @Override
 475     @ForceInline
 476     public int andAll() {
 477         return (int) VectorIntrinsics.reductionCoerced(
 478             VECTOR_OP_AND, Int256Vector.class, int.class, LENGTH,
 479             this,
 480             v -> (long) v.rOp((int) -1, (i, a, b) -> (int) (a & b)));
 481     }
 482 
 483     @Override
 484     @ForceInline
 485     public int subAll() {
 486         return (int) VectorIntrinsics.reductionCoerced(
 487             VECTOR_OP_SUB, Int256Vector.class, int.class, LENGTH,
 488             this,
 489             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a - b)));
 490     }
 491 
 492     @Override
 493     @ForceInline
 494     public int mulAll() {
 495         return (int) VectorIntrinsics.reductionCoerced(
 496             VECTOR_OP_MUL, Int256Vector.class, int.class, LENGTH,
 497             this,
 498             v -> (long) v.rOp((int) 1, (i, a, b) -> (int) (a * b)));
 499     }
 500 
 501     @Override
 502     @ForceInline
 503     public int orAll() {
 504         return (int) VectorIntrinsics.reductionCoerced(
 505             VECTOR_OP_OR, Int256Vector.class, int.class, LENGTH,
 506             this,
 507             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a | b)));
 508     }
 509 
 510     @Override
 511     @ForceInline
 512     public int xorAll() {
 513         return (int) VectorIntrinsics.reductionCoerced(
 514             VECTOR_OP_XOR, Int256Vector.class, int.class, LENGTH,
 515             this,
 516             v -> (long) v.rOp((int) 0, (i, a, b) -> (int) (a ^ b)));









 517     }
 518 
 519     // Memory operations
 520 
 521     @Override
 522     @ForceInline
 523     public void intoArray(int[] a, int ix) {
 524         Objects.requireNonNull(a);
 525         ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
 526         VectorIntrinsics.store(Int256Vector.class, int.class, LENGTH,
 527                                a, ix, this,
 528                                (arr, idx, v) -> v.forEach((i, a_) -> ((int[])arr)[idx + i] = a_));
 529     }
 530 
 531     @Override
 532     @ForceInline
 533     public void intoArray(int[] a, int ax, Mask<Integer, Shapes.S256Bit> m) {
 534         // TODO: use better default impl: forEach(m, (i, a_) -> a[ax + i] = a_);
 535         Int256Vector oldVal = SPECIES.fromArray(a, ax);
 536         Int256Vector newVal = oldVal.blend(this, m);


< prev index next >