1172 double[] a = fa.apply(SPECIES.length());
1173 double[] r = fr.apply(SPECIES.length());
1174 boolean[] mask = fm.apply(SPECIES.length());
1175 Vector.Mask<Double> vmask = DoubleVector.maskFromValues(SPECIES, mask);
1176
1177 for (int ic = 0; ic < INVOC_COUNT; ic++) {
1178 for (int i = 0; i < a.length; i += SPECIES.length()) {
1179 DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
1180 av.sqrt(vmask).intoArray(r, i);
1181 }
1182 }
1183
1184 bh.consume(r);
1185 }
1186
1187
1188
1189 @Benchmark
1190 public void gather(Blackhole bh) {
1191 double[] a = fa.apply(SPECIES.length());
1192 int[] b = fs.apply(a.length, SPECIES.length());
1193 double[] r = new double[a.length];
1194
1195 for (int ic = 0; ic < INVOC_COUNT; ic++) {
1196 for (int i = 0; i < a.length; i += SPECIES.length()) {
1197 DoubleVector av = DoubleVector.fromArray(SPECIES, a, i, b, i);
1198 av.intoArray(r, i);
1199 }
1200 }
1201
1202 bh.consume(r);
1203 }
1204
1205
1206
1207 @Benchmark
1208 public void scatter(Blackhole bh) {
1209 double[] a = fa.apply(SPECIES.length());
1210 int[] b = fs.apply(a.length, SPECIES.length());
1211 double[] r = new double[a.length];
1212
1213 for (int ic = 0; ic < INVOC_COUNT; ic++) {
1214 for (int i = 0; i < a.length; i += SPECIES.length()) {
1215 DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
1216 av.intoArray(r, i, b, i);
1217 }
1218 }
1219
1220 bh.consume(r);
1221 }
1222
1223 }
1224
|
1172 double[] a = fa.apply(SPECIES.length());
1173 double[] r = fr.apply(SPECIES.length());
1174 boolean[] mask = fm.apply(SPECIES.length());
1175 Vector.Mask<Double> vmask = DoubleVector.maskFromValues(SPECIES, mask);
1176
1177 for (int ic = 0; ic < INVOC_COUNT; ic++) {
1178 for (int i = 0; i < a.length; i += SPECIES.length()) {
1179 DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
1180 av.sqrt(vmask).intoArray(r, i);
1181 }
1182 }
1183
1184 bh.consume(r);
1185 }
1186
1187
1188
1189 @Benchmark
1190 public void gather(Blackhole bh) {
1191 double[] a = fa.apply(SPECIES.length());
1192 int[] b = fs.apply(a.length * 2, SPECIES.length());
1193 double[] r = new double[a.length];
1194
1195 for (int ic = 0; ic < INVOC_COUNT; ic++) {
1196 for (int i = 0; i < a.length; i += SPECIES.length()) {
1197 DoubleVector av = DoubleVector.fromArray(SPECIES, a, i, b, i);
1198 av.intoArray(r, i);
1199 }
1200 }
1201
1202 bh.consume(r);
1203 }
1204
1205
1206
1207 @Benchmark
1208 public void scatter(Blackhole bh) {
1209 double[] a = fa.apply(SPECIES.length());
1210 int[] b = fs.apply(a.length * 2, SPECIES.length());
1211 double[] r = new double[a.length];
1212
1213 for (int ic = 0; ic < INVOC_COUNT; ic++) {
1214 for (int i = 0; i < a.length; i += SPECIES.length()) {
1215 DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
1216 av.intoArray(r, i, b, i);
1217 }
1218 }
1219
1220 bh.consume(r);
1221 }
1222
1223 }
1224
|