< prev index next >

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

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


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









 446     // Memory operations
 447 
 448     @Override
 449     @ForceInline
 450     public void intoArray(short[] a, int ix) {
 451         Objects.requireNonNull(a);
 452         ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
 453         VectorIntrinsics.store(Short128Vector.class, short.class, LENGTH,
 454                                a, ix, this,
 455                                (arr, idx, v) -> v.forEach((i, a_) -> ((short[])arr)[idx + i] = a_));
 456     }
 457 
 458     @Override
 459     @ForceInline
 460     public void intoArray(short[] a, int ax, Mask<Short, Shapes.S128Bit> m) {
 461         // TODO: use better default impl: forEach(m, (i, a_) -> a[ax + i] = a_);
 462         Short128Vector oldVal = SPECIES.fromArray(a, ax);
 463         Short128Vector newVal = oldVal.blend(this, m);
 464         newVal.intoArray(a, ax);
 465     }




 426     // Type specific horizontal reductions
 427 
 428     @Override
 429     @ForceInline
 430     public short addAll() {
 431         return (short) VectorIntrinsics.reductionCoerced(
 432             VECTOR_OP_ADD, Short128Vector.class, short.class, LENGTH,
 433             this,
 434             v -> (long) v.rOp((short) 0, (i, a, b) -> (short) (a + b)));
 435     }
 436 
 437     @Override
 438     @ForceInline
 439     public short andAll() {
 440         return (short) VectorIntrinsics.reductionCoerced(
 441             VECTOR_OP_AND, Short128Vector.class, short.class, LENGTH,
 442             this,
 443             v -> (long) v.rOp((short) -1, (i, a, b) -> (short) (a & b)));
 444     }
 445 
 446     @Override
 447     @ForceInline
 448     public short subAll() {
 449         return (short) VectorIntrinsics.reductionCoerced(
 450             VECTOR_OP_SUB, Short128Vector.class, short.class, LENGTH,
 451             this,
 452             v -> (long) v.rOp((short) 0, (i, a, b) -> (short) (a - b)));
 453     }
 454 
 455     // Memory operations
 456 
 457     @Override
 458     @ForceInline
 459     public void intoArray(short[] a, int ix) {
 460         Objects.requireNonNull(a);
 461         ix = VectorIntrinsics.checkIndex(ix, a.length, LENGTH);
 462         VectorIntrinsics.store(Short128Vector.class, short.class, LENGTH,
 463                                a, ix, this,
 464                                (arr, idx, v) -> v.forEach((i, a_) -> ((short[])arr)[idx + i] = a_));
 465     }
 466 
 467     @Override
 468     @ForceInline
 469     public void intoArray(short[] a, int ax, Mask<Short, Shapes.S128Bit> m) {
 470         // TODO: use better default impl: forEach(m, (i, a_) -> a[ax + i] = a_);
 471         Short128Vector oldVal = SPECIES.fromArray(a, ax);
 472         Short128Vector newVal = oldVal.blend(this, m);
 473         newVal.intoArray(a, ax);
 474     }


< prev index next >