898 } 899 900 @Override 901 public Int128Vector shiftER(int j) { 902 int[] vec = getElements(); 903 int[] res = new int[length()]; 904 for (int i = 0; i < length() - j; i++){ 905 res[i + j] = vec[i]; 906 } 907 return new Int128Vector(res); 908 } 909 910 @Override 911 @ForceInline 912 public Int128Vector rearrange(Vector<Integer, Shapes.S128Bit> v, 913 Shuffle<Integer, Shapes.S128Bit> s, Mask<Integer, Shapes.S128Bit> m) { 914 return this.rearrange(s).blend(v.rearrange(s), m); 915 } 916 917 @Override 918 public Int128Vector rearrange(Shuffle<Integer, Shapes.S128Bit> s) { 919 return uOp((i, a) -> { 920 int[] vec = this.getElements(); 921 int ei = s.getElement(i); 922 return vec[ei]; 923 }); 924 } 925 926 @Override 927 @ForceInline 928 public Int128Vector blend(Vector<Integer, Shapes.S128Bit> o1, Mask<Integer, Shapes.S128Bit> o2) { 929 Objects.requireNonNull(o1); 930 Objects.requireNonNull(o2); 931 Int128Vector v = (Int128Vector)o1; 932 Int128Mask m = (Int128Mask)o2; 933 934 return VectorIntrinsics.blend( 935 Int128Vector.class, Int128Mask.class, int.class, LENGTH, 936 this, v, m, 937 (v1, v2, m_) -> v1.bOp(v2, (i, a, b) -> m_.getElement(i) ? b : a)); 938 } 939 940 // Accessors 941 942 @Override 943 public int get(int i) { | 898 } 899 900 @Override 901 public Int128Vector shiftER(int j) { 902 int[] vec = getElements(); 903 int[] res = new int[length()]; 904 for (int i = 0; i < length() - j; i++){ 905 res[i + j] = vec[i]; 906 } 907 return new Int128Vector(res); 908 } 909 910 @Override 911 @ForceInline 912 public Int128Vector rearrange(Vector<Integer, Shapes.S128Bit> v, 913 Shuffle<Integer, Shapes.S128Bit> s, Mask<Integer, Shapes.S128Bit> m) { 914 return this.rearrange(s).blend(v.rearrange(s), m); 915 } 916 917 @Override 918 @ForceInline 919 public Int128Vector rearrange(Shuffle<Integer, Shapes.S128Bit> o1) { 920 Objects.requireNonNull(o1); 921 Int128Shuffle s = (Int128Shuffle)o1; 922 923 return VectorIntrinsics.rearrangeOp( 924 Int128Vector.class, Int128Shuffle.class, int.class, LENGTH, 925 this, s, 926 (v1, s_) -> v1.uOp((i, a) -> { 927 int[] vec = this.getElements(); 928 int ei = s_.getElement(i); 929 return vec[ei]; 930 })); 931 } 932 933 @Override 934 @ForceInline 935 public Int128Vector blend(Vector<Integer, Shapes.S128Bit> o1, Mask<Integer, Shapes.S128Bit> o2) { 936 Objects.requireNonNull(o1); 937 Objects.requireNonNull(o2); 938 Int128Vector v = (Int128Vector)o1; 939 Int128Mask m = (Int128Mask)o2; 940 941 return VectorIntrinsics.blend( 942 Int128Vector.class, Int128Mask.class, int.class, LENGTH, 943 this, v, m, 944 (v1, v2, m_) -> v1.bOp(v2, (i, a, b) -> m_.getElement(i) ? b : a)); 945 } 946 947 // Accessors 948 949 @Override 950 public int get(int i) { |