< prev index next >

src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template

Print this page




 562 
 563     @Override
 564     @ForceInline
 565     public $vectortype$ shiftR(int s) {
 566         return ($vectortype$) VectorIntrinsics.broadcastInt(
 567             VECTOR_OP_URSHIFT, $vectortype$.class, $type$.class, LENGTH,
 568             this, s,
 569             (v, i) -> v.uOp((__, a) -> ($type$) (a >>> i)));
 570     }
 571 
 572     @Override
 573     @ForceInline
 574     public $vectortype$ aShiftR(int s) {
 575         return ($vectortype$) VectorIntrinsics.broadcastInt(
 576             VECTOR_OP_RSHIFT, $vectortype$.class, $type$.class, LENGTH,
 577             this, s,
 578             (v, i) -> v.uOp((__, a) -> ($type$) (a >> i)));
 579     }
 580 #end[BITWISE]
 581 































 582     // Ternary operations
 583 
 584 #if[FP]
 585     @Override
 586     @ForceInline
 587     public $vectortype$ fma(Vector<$Boxtype$,Shapes.$shape$> o1, Vector<$Boxtype$,Shapes.$shape$> o2) {
 588         Objects.requireNonNull(o1);
 589         Objects.requireNonNull(o2);
 590         $vectortype$ v1 = ($vectortype$)o1;
 591         $vectortype$ v2 = ($vectortype$)o2;
 592         return ($vectortype$) VectorIntrinsics.ternaryOp(
 593             VECTOR_OP_FMA, $vectortype$.class, $type$.class, LENGTH,
 594             this, v1, v2,
 595             (w1, w2, w3) -> w1.tOp(w2, w3, (i, a, b, c) -> Math.fma(a, b, c)));
 596     }
 597 #end[FP]
 598 
 599     // Type specific horizontal reductions
 600 
 601 #if[BITWISE]




 562 
 563     @Override
 564     @ForceInline
 565     public $vectortype$ shiftR(int s) {
 566         return ($vectortype$) VectorIntrinsics.broadcastInt(
 567             VECTOR_OP_URSHIFT, $vectortype$.class, $type$.class, LENGTH,
 568             this, s,
 569             (v, i) -> v.uOp((__, a) -> ($type$) (a >>> i)));
 570     }
 571 
 572     @Override
 573     @ForceInline
 574     public $vectortype$ aShiftR(int s) {
 575         return ($vectortype$) VectorIntrinsics.broadcastInt(
 576             VECTOR_OP_RSHIFT, $vectortype$.class, $type$.class, LENGTH,
 577             this, s,
 578             (v, i) -> v.uOp((__, a) -> ($type$) (a >> i)));
 579     }
 580 #end[BITWISE]
 581 
 582 #if[intOrLong]
 583     @Override
 584     @ForceInline
 585     public $vectortype$ shiftL(Vector<$Boxtype$,Shapes.$shape$> s) {
 586         $vectortype$ v = ($vectortype$)s;
 587         return ($vectortype$) VectorIntrinsics.binaryOp(
 588             VECTOR_OP_LSHIFT, $vectortype$.class, $type$.class, LENGTH,
 589             this, v,
 590             (v1, v2) -> (($vectortype$)v1).bOp(v2,(i,a, b) -> ($type$) (a << b)));
 591     }
 592 
 593     @Override
 594     @ForceInline
 595     public $vectortype$ shiftR(Vector<$Boxtype$,Shapes.$shape$> s) {
 596         $vectortype$ v = ($vectortype$)s;
 597         return ($vectortype$) VectorIntrinsics.binaryOp(
 598             VECTOR_OP_URSHIFT, $vectortype$.class, $type$.class, LENGTH,
 599             this, v,
 600             (v1, v2) -> (($vectortype$)v1).bOp(v2,(i,a, b) -> ($type$) (a >>> b)));
 601     }
 602 
 603     @Override
 604     @ForceInline
 605     public $vectortype$ ashiftR(Vector<$Boxtype$,Shapes.$shape$> s) {
 606         $vectortype$ v = ($vectortype$)s;
 607         return ($vectortype$) VectorIntrinsics.binaryOp(
 608             VECTOR_OP_RSHIFT, $vectortype$.class, $type$.class, LENGTH,
 609             this, v,
 610             (v1, v2) -> (($vectortype$)v1).bOp(v2,(i,a, b) -> ($type$) (a >> b)));
 611     }
 612 #end[intOrLong]
 613     // Ternary operations
 614 
 615 #if[FP]
 616     @Override
 617     @ForceInline
 618     public $vectortype$ fma(Vector<$Boxtype$,Shapes.$shape$> o1, Vector<$Boxtype$,Shapes.$shape$> o2) {
 619         Objects.requireNonNull(o1);
 620         Objects.requireNonNull(o2);
 621         $vectortype$ v1 = ($vectortype$)o1;
 622         $vectortype$ v2 = ($vectortype$)o2;
 623         return ($vectortype$) VectorIntrinsics.ternaryOp(
 624             VECTOR_OP_FMA, $vectortype$.class, $type$.class, LENGTH,
 625             this, v1, v2,
 626             (w1, w2, w3) -> w1.tOp(w2, w3, (i, a, b, c) -> Math.fma(a, b, c)));
 627     }
 628 #end[FP]
 629 
 630     // Type specific horizontal reductions
 631 
 632 #if[BITWISE]


< prev index next >