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] |