--- old/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorShuffle.java 2019-05-14 07:09:41.476514174 +0530 +++ new/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorShuffle.java 2019-05-14 07:09:41.236514169 +0530 @@ -146,8 +146,24 @@ * @see Vector#shuffleIota(int) */ @ForceInline + @SuppressWarnings("unchecked") public static VectorShuffle shuffleIota(VectorSpecies species, int start) { - return ((AbstractSpecies) species).shuffleFromOpFactory.apply(i -> i + start); + Class elementType = species.elementType(); + if (elementType == byte.class) { + return (VectorShuffle) ByteVector.shuffleIotaHelper((VectorSpecies) species, start); + } else if (elementType == short.class) { + return (VectorShuffle) ShortVector.shuffleIotaHelper((VectorSpecies) species, start); + } else if (elementType == int.class) { + return (VectorShuffle) IntVector.shuffleIotaHelper((VectorSpecies) species, start); + } else if (elementType == long.class) { + return (VectorShuffle) LongVector.shuffleIotaHelper((VectorSpecies) species, start); + } else if (elementType == float.class) { + return (VectorShuffle) FloatVector.shuffleIotaHelper((VectorSpecies) species, start); + } else if (elementType == double.class) { + return (VectorShuffle) DoubleVector.shuffleIotaHelper((VectorSpecies) species, start); + } else { + throw new UnsupportedOperationException("Bad lane type for shuffleIota."); + } } /**