public class org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets
  super_class: java.lang.Object
{
  private static final boolean supportsUnalignedMemoryAccess;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.vm.ci.meta.JavaKind VECTOR_KIND;
    descriptor: Ljdk/vm/ci/meta/JavaKind;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long VECTOR_SIZE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 68
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
            invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getTarget:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual jdk.vm.ci.code.Architecture.supportsUnalignedMemoryAccess:()Z
            putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
         1: .line 70
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
         2: .line 71
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/replacements/arraycopy/UnsafeArrayCopySnippets;

  private static void vectorizedCopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.core.common.LocationIdentity);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=23, args_size=7
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // jdk.vm.ci.meta.JavaKind baseKind
        start local 6 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
         0: .line 74
            aload 5 /* baseKind */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 7 /* arrayBaseOffset */
        start local 7 // int arrayBaseOffset
         1: .line 75
            aload 5 /* baseKind */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 8 /* elementSize */
        start local 8 // int elementSize
         2: .line 76
            iload 4 /* length */
            i2l
            iload 8 /* elementSize */
            i2l
            lmul
            lstore 9 /* byteLength */
        start local 9 // long byteLength
         3: .line 77
            iload 1 /* srcPos */
            i2l
            iload 8 /* elementSize */
            i2l
            lmul
            lstore 11 /* srcOffset */
        start local 11 // long srcOffset
         4: .line 78
            iload 3 /* destPos */
            i2l
            iload 8 /* elementSize */
            i2l
            lmul
            lstore 13 /* destOffset */
        start local 13 // long destOffset
         5: .line 85
            lload 9 /* byteLength */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lcmp
            iflt 10
            lload 11 /* srcOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lrem
            lload 13 /* destOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lrem
            lcmp
            ifne 10
         6: .line 86
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            invokestatic org.graalvm.compiler.asm.NumUtil.roundUp:(JJ)J
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            lsub
            lstore 15 /* preLoopBytes */
        start local 15 // long preLoopBytes
         7: .line 87
            lload 9 /* byteLength */
            lload 15 /* preLoopBytes */
            lsub
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lrem
            lstore 19 /* postLoopBytes */
        start local 19 // long postLoopBytes
         8: .line 88
            lload 9 /* byteLength */
            lload 15 /* preLoopBytes */
            lsub
            lload 19 /* postLoopBytes */
            lsub
            lstore 17 /* mainLoopBytes */
        start local 17 // long mainLoopBytes
         9: .line 89
            goto 18
        end local 19 // long postLoopBytes
        end local 17 // long mainLoopBytes
        end local 15 // long preLoopBytes
        10: .line 91
      StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.LocationIdentity int int long long long
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
            ifeq 15
        11: .line 92
            lload 9 /* byteLength */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lrem
            lstore 15 /* preLoopBytes */
        start local 15 // long preLoopBytes
        12: .line 93
            lload 9 /* byteLength */
            lload 15 /* preLoopBytes */
            lsub
            lstore 17 /* mainLoopBytes */
        start local 17 // long mainLoopBytes
        13: .line 94
            lconst_0
            lstore 19 /* postLoopBytes */
        start local 19 // long postLoopBytes
        14: .line 95
            goto 18
        end local 19 // long postLoopBytes
        end local 17 // long mainLoopBytes
        end local 15 // long preLoopBytes
        15: .line 97
      StackMap locals:
      StackMap stack:
            lload 9 /* byteLength */
            lstore 15 /* preLoopBytes */
        start local 15 // long preLoopBytes
        16: .line 98
            lconst_0
            lstore 17 /* mainLoopBytes */
        start local 17 // long mainLoopBytes
        17: .line 99
            lconst_0
            lstore 19 /* postLoopBytes */
        start local 19 // long postLoopBytes
        18: .line 103
      StackMap locals: long long long
      StackMap stack:
            ldc 0.09999999999999998
            aload 0 /* src */
            aload 2 /* dest */
            if_acmpne 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack: double
        19: iconst_0
      StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.LocationIdentity int int long long long long long long
      StackMap stack: double int
        20: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 47
            ldc 0.09999999999999998
            iload 1 /* srcPos */
            iload 3 /* destPos */
            if_icmpge 21
            iconst_1
            goto 22
      StackMap locals:
      StackMap stack: double
        21: iconst_0
      StackMap locals: java.lang.Object int java.lang.Object int int jdk.vm.ci.meta.JavaKind org.graalvm.compiler.core.common.LocationIdentity int int long long long long long long
      StackMap stack: double int
        22: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 47
        23: .line 105
            lload 11 /* srcOffset */
            lload 9 /* byteLength */
            ladd
            lstore 11 /* srcOffset */
        24: .line 106
            lload 13 /* destOffset */
            lload 9 /* byteLength */
            ladd
            lstore 13 /* destOffset */
        25: .line 109
            lconst_0
            lstore 21 /* i */
        start local 21 // long i
        26: goto 31
        27: .line 110
      StackMap locals: long
      StackMap stack:
            lload 11 /* srcOffset */
            iload 8 /* elementSize */
            i2l
            lsub
            lstore 11 /* srcOffset */
        28: .line 111
            lload 13 /* destOffset */
            iload 8 /* elementSize */
            i2l
            lsub
            lstore 13 /* destOffset */
        29: .line 112
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 13 /* destOffset */
            ladd
            aload 5 /* baseKind */
            aload 6 /* locationIdentity */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        30: .line 109
            lload 21 /* i */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 21 /* i */
      StackMap locals:
      StackMap stack:
        31: lload 21 /* i */
            lload 19 /* postLoopBytes */
            lcmp
            iflt 27
        end local 21 // long i
        32: .line 115
            lconst_0
            lstore 21 /* i */
        start local 21 // long i
        33: goto 38
        34: .line 116
      StackMap locals:
      StackMap stack:
            lload 11 /* srcOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lsub
            lstore 11 /* srcOffset */
        35: .line 117
            lload 13 /* destOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            lsub
            lstore 13 /* destOffset */
        36: .line 118
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 13 /* destOffset */
            ladd
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
            aload 6 /* locationIdentity */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        37: .line 115
            lload 21 /* i */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            ladd
            lstore 21 /* i */
      StackMap locals:
      StackMap stack:
        38: lload 21 /* i */
            lload 17 /* mainLoopBytes */
            lcmp
            iflt 34
        end local 21 // long i
        39: .line 121
            lconst_0
            lstore 21 /* i */
        start local 21 // long i
        40: goto 45
        41: .line 122
      StackMap locals:
      StackMap stack:
            lload 11 /* srcOffset */
            iload 8 /* elementSize */
            i2l
            lsub
            lstore 11 /* srcOffset */
        42: .line 123
            lload 13 /* destOffset */
            iload 8 /* elementSize */
            i2l
            lsub
            lstore 13 /* destOffset */
        43: .line 124
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 13 /* destOffset */
            ladd
            aload 5 /* baseKind */
            aload 6 /* locationIdentity */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        44: .line 121
            lload 21 /* i */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 21 /* i */
      StackMap locals:
      StackMap stack:
        45: lload 21 /* i */
            lload 15 /* preLoopBytes */
            lcmp
            iflt 41
        end local 21 // long i
        46: .line 126
            goto 68
        47: .line 128
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 21 /* i */
        start local 21 // long i
        48: goto 53
        49: .line 129
      StackMap locals: long
      StackMap stack:
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 13 /* destOffset */
            ladd
            aload 5 /* baseKind */
            aload 6 /* locationIdentity */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        50: .line 130
            lload 11 /* srcOffset */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 11 /* srcOffset */
        51: .line 131
            lload 13 /* destOffset */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 13 /* destOffset */
        52: .line 128
            lload 21 /* i */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 21 /* i */
      StackMap locals:
      StackMap stack:
        53: lload 21 /* i */
            lload 15 /* preLoopBytes */
            lcmp
            iflt 49
        end local 21 // long i
        54: .line 134
            lconst_0
            lstore 21 /* i */
        start local 21 // long i
        55: goto 60
        56: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 13 /* destOffset */
            ladd
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_KIND:Ljdk/vm/ci/meta/JavaKind;
            aload 6 /* locationIdentity */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        57: .line 136
            lload 11 /* srcOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            ladd
            lstore 11 /* srcOffset */
        58: .line 137
            lload 13 /* destOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            ladd
            lstore 13 /* destOffset */
        59: .line 134
            lload 21 /* i */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            ladd
            lstore 21 /* i */
      StackMap locals:
      StackMap stack:
        60: lload 21 /* i */
            lload 17 /* mainLoopBytes */
            lcmp
            iflt 56
        end local 21 // long i
        61: .line 140
            lconst_0
            lstore 21 /* i */
        start local 21 // long i
        62: goto 67
        63: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* srcOffset */
            ladd
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 13 /* destOffset */
            ladd
            aload 5 /* baseKind */
            aload 6 /* locationIdentity */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeCopyNode.copy:(Ljava/lang/Object;JLjava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        64: .line 142
            lload 11 /* srcOffset */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 11 /* srcOffset */
        65: .line 143
            lload 13 /* destOffset */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 13 /* destOffset */
        66: .line 140
            lload 21 /* i */
            iload 8 /* elementSize */
            i2l
            ladd
            lstore 21 /* i */
      StackMap locals:
      StackMap stack:
        67: lload 21 /* i */
            lload 19 /* postLoopBytes */
            lcmp
            iflt 63
        end local 21 // long i
        68: .line 146
      StackMap locals:
      StackMap stack:
            return
        end local 19 // long postLoopBytes
        end local 17 // long mainLoopBytes
        end local 15 // long preLoopBytes
        end local 13 // long destOffset
        end local 11 // long srcOffset
        end local 9 // long byteLength
        end local 8 // int elementSize
        end local 7 // int arrayBaseOffset
        end local 6 // org.graalvm.compiler.core.common.LocationIdentity locationIdentity
        end local 5 // jdk.vm.ci.meta.JavaKind baseKind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   69     0               src  Ljava/lang/Object;
            0   69     1            srcPos  I
            0   69     2              dest  Ljava/lang/Object;
            0   69     3           destPos  I
            0   69     4            length  I
            0   69     5          baseKind  Ljdk/vm/ci/meta/JavaKind;
            0   69     6  locationIdentity  Lorg/graalvm/compiler/core/common/LocationIdentity;
            1   69     7   arrayBaseOffset  I
            2   69     8       elementSize  I
            3   69     9        byteLength  J
            4   69    11         srcOffset  J
            5   69    13        destOffset  J
            7   10    15      preLoopBytes  J
           12   15    15      preLoopBytes  J
           16   69    15      preLoopBytes  J
            9   10    17     mainLoopBytes  J
           13   15    17     mainLoopBytes  J
           17   69    17     mainLoopBytes  J
            8   10    19     postLoopBytes  J
           14   15    19     postLoopBytes  J
           18   69    19     postLoopBytes  J
           26   32    21                 i  J
           33   39    21                 i  J
           40   46    21                 i  J
           48   54    21                 i  J
           55   61    21                 i  J
           62   68    21                 i  J
    MethodParameters:
                  Name  Flags
      src               
      srcPos            
      dest              
      destPos           
      length            
      baseKind          
      locationIdentity  

  static org.graalvm.compiler.core.common.LocationIdentity getArrayLocation(jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaKind kind
         0: .line 150
            aload 0 /* kind */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            areturn
        end local 0 // jdk.vm.ci.meta.JavaKind kind
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
    MethodParameters:
      Name  Flags
      kind  

  public static void arraycopyByte(byte[], int, byte[], int, int);
    descriptor: ([BI[BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // byte[] src
        start local 1 // int srcPos
        start local 2 // byte[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 155
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 156
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 157
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // byte[] dest
        end local 1 // int srcPos
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [B
            0    3     1   srcPos  I
            0    3     2     dest  [B
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyBoolean(boolean[], int, boolean[], int, int);
    descriptor: ([ZI[ZII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // boolean[] src
        start local 1 // int srcPos
        start local 2 // boolean[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 161
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 162
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 163
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // boolean[] dest
        end local 1 // int srcPos
        end local 0 // boolean[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [Z
            0    3     1   srcPos  I
            0    3     2     dest  [Z
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyChar(char[], int, char[], int, int);
    descriptor: ([CI[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // char[] src
        start local 1 // int srcPos
        start local 2 // char[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 167
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 168
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 169
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // char[] dest
        end local 1 // int srcPos
        end local 0 // char[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [C
            0    3     1   srcPos  I
            0    3     2     dest  [C
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyShort(short[], int, short[], int, int);
    descriptor: ([SI[SII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // short[] src
        start local 1 // int srcPos
        start local 2 // short[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 173
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 174
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 175
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // short[] dest
        end local 1 // int srcPos
        end local 0 // short[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [S
            0    3     1   srcPos  I
            0    3     2     dest  [S
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyInt(int[], int, int[], int, int);
    descriptor: ([II[III)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // int[] src
        start local 1 // int srcPos
        start local 2 // int[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 179
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 180
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 181
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // int[] dest
        end local 1 // int srcPos
        end local 0 // int[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [I
            0    3     1   srcPos  I
            0    3     2     dest  [I
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyFloat(float[], int, float[], int, int);
    descriptor: ([FI[FII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // float[] src
        start local 1 // int srcPos
        start local 2 // float[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 185
            getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 186
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 187
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // float[] dest
        end local 1 // int srcPos
        end local 0 // float[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [F
            0    3     1   srcPos  I
            0    3     2     dest  [F
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyLong(long[], int, long[], int, int);
    descriptor: ([JI[JII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // long[] src
        start local 1 // int srcPos
        start local 2 // long[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 191
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 192
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 193
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // long[] dest
        end local 1 // int srcPos
        end local 0 // long[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [J
            0    3     1   srcPos  I
            0    3     2     dest  [J
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyDouble(double[], int, double[], int, int);
    descriptor: ([DI[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // double[] src
        start local 1 // int srcPos
        start local 2 // double[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 197
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 203
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* kind */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.vectorizedCopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
         2: .line 204
            return
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // double[] dest
        end local 1 // int srcPos
        end local 0 // double[] src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      src  [D
            0    3     1   srcPos  I
            0    3     2     dest  [D
            0    3     3  destPos  I
            0    3     4   length  I
            1    3     5     kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyObject(java.lang.Object[], int, java.lang.Object[], int, int);
    descriptor: ([Ljava/lang/Object;I[Ljava/lang/Object;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=14, args_size=5
        start local 0 // java.lang.Object[] src
        start local 1 // int srcPos
        start local 2 // java.lang.Object[] dest
        start local 3 // int destPos
        start local 4 // int length
         0: .line 214
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 215
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 6 /* scale */
        start local 6 // int scale
         2: .line 216
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 7 /* arrayBaseOffset */
        start local 7 // int arrayBaseOffset
         3: .line 217
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            astore 8 /* arrayLocation */
        start local 8 // org.graalvm.compiler.core.common.LocationIdentity arrayLocation
         4: .line 218
            aload 0 /* src */
            aload 2 /* dest */
            if_acmpne 13
            iload 1 /* srcPos */
            iload 3 /* destPos */
            if_icmpge 13
         5: .line 219
            iload 4 /* length */
            iconst_1
            isub
            i2l
            iload 6 /* scale */
            i2l
            lmul
            lstore 9 /* start */
        start local 9 // long start
         6: .line 220
            lload 9 /* start */
            lstore 11 /* i */
        start local 11 // long i
         7: goto 11
         8: .line 221
      StackMap locals: java.lang.Object[] int java.lang.Object[] int int jdk.vm.ci.meta.JavaKind int int org.graalvm.compiler.core.common.LocationIdentity long long
      StackMap stack:
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* i */
            ladd
            iload 1 /* srcPos */
            i2l
            iload 6 /* scale */
            i2l
            lmul
            ladd
            aload 5 /* kind */
            aload 8 /* arrayLocation */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)Ljava/lang/Object;
            astore 13 /* a */
        start local 13 // java.lang.Object a
         9: .line 222
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            lload 11 /* i */
            iload 3 /* destPos */
            i2l
            iload 6 /* scale */
            i2l
            lmul
            ladd
            aload 13 /* a */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.replacements.nodes.DirectObjectStoreNode.storeObject:(Ljava/lang/Object;IJLjava/lang/Object;Lorg/graalvm/compiler/core/common/LocationIdentity;Ljdk/vm/ci/meta/JavaKind;)V
        end local 13 // java.lang.Object a
        10: .line 220
            lload 11 /* i */
            iload 6 /* scale */
            i2l
            lsub
            lstore 11 /* i */
      StackMap locals:
      StackMap stack:
        11: lload 11 /* i */
            lconst_0
            lcmp
            ifge 8
        end local 11 // long i
        end local 9 // long start
        12: .line 224
            goto 20
        13: .line 225
      StackMap locals:
      StackMap stack:
            iload 4 /* length */
            i2l
            iload 6 /* scale */
            i2l
            lmul
            lstore 9 /* end */
        start local 9 // long end
        14: .line 226
            lconst_0
            lstore 11 /* i */
        start local 11 // long i
        15: goto 19
        16: .line 227
      StackMap locals: long long
      StackMap stack:
            aload 0 /* src */
            iload 7 /* arrayBaseOffset */
            i2l
            lload 11 /* i */
            ladd
            iload 1 /* srcPos */
            i2l
            iload 6 /* scale */
            i2l
            lmul
            ladd
            aload 5 /* kind */
            aload 8 /* arrayLocation */
            invokestatic org.graalvm.compiler.nodes.extended.UnsafeLoadNode.load:(Ljava/lang/Object;JLjdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/core/common/LocationIdentity;)Ljava/lang/Object;
            astore 13 /* a */
        start local 13 // java.lang.Object a
        17: .line 228
            aload 2 /* dest */
            iload 7 /* arrayBaseOffset */
            lload 11 /* i */
            iload 3 /* destPos */
            i2l
            iload 6 /* scale */
            i2l
            lmul
            ladd
            aload 13 /* a */
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LocationIdentity;
            aload 5 /* kind */
            invokestatic org.graalvm.compiler.replacements.nodes.DirectObjectStoreNode.storeObject:(Ljava/lang/Object;IJLjava/lang/Object;Lorg/graalvm/compiler/core/common/LocationIdentity;Ljdk/vm/ci/meta/JavaKind;)V
        end local 13 // java.lang.Object a
        18: .line 226
            lload 11 /* i */
            iload 6 /* scale */
            i2l
            ladd
            lstore 11 /* i */
      StackMap locals:
      StackMap stack:
        19: lload 11 /* i */
            lload 9 /* end */
            lcmp
            iflt 16
        end local 11 // long i
        end local 9 // long end
        20: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 8 // org.graalvm.compiler.core.common.LocationIdentity arrayLocation
        end local 7 // int arrayBaseOffset
        end local 6 // int scale
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object[] dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object[] src
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0              src  [Ljava/lang/Object;
            0   21     1           srcPos  I
            0   21     2             dest  [Ljava/lang/Object;
            0   21     3          destPos  I
            0   21     4           length  I
            1   21     5             kind  Ljdk/vm/ci/meta/JavaKind;
            2   21     6            scale  I
            3   21     7  arrayBaseOffset  I
            4   21     8    arrayLocation  Lorg/graalvm/compiler/core/common/LocationIdentity;
            6   12     9            start  J
            7   12    11                i  J
            9   10    13                a  Ljava/lang/Object;
           14   20     9              end  J
           15   20    11                i  J
           17   18    13                a  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopyPrimitive(java.lang.Object, int, java.lang.Object, int, int, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;III)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=18, args_size=6
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // int layoutHelper
         0: .line 235
            iload 5 /* layoutHelper */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            ishr
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperLog2ElementSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iand
            istore 6 /* log2ElementSize */
        start local 6 // int log2ElementSize
         1: .line 236
            iload 5 /* layoutHelper */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            ishr
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.layoutHelperHeaderSizeMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            iand
            istore 7 /* headerSize */
        start local 7 // int headerSize
         2: .line 238
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            invokestatic org.graalvm.compiler.word.Word.unsigned:(J)Lorg/graalvm/compiler/word/Word;
            astore 8 /* vectorSize */
        start local 8 // org.graalvm.compiler.word.Unsigned vectorSize
         3: .line 239
            iload 1 /* srcPos */
            invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
            iload 6 /* log2ElementSize */
            invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
            iload 7 /* headerSize */
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 9 /* srcOffset */
        start local 9 // org.graalvm.compiler.word.Unsigned srcOffset
         4: .line 240
            iload 3 /* destPos */
            invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
            iload 6 /* log2ElementSize */
            invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
            iload 7 /* headerSize */
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 10 /* destOffset */
        start local 10 // org.graalvm.compiler.word.Unsigned destOffset
         5: .line 241
            aload 10 /* destOffset */
            astore 11 /* destStart */
        start local 11 // org.graalvm.compiler.word.Unsigned destStart
         6: .line 242
            aload 10 /* destOffset */
            iload 4 /* length */
            invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
            iload 6 /* log2ElementSize */
            invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            astore 12 /* destEnd */
        start local 12 // org.graalvm.compiler.word.Unsigned destEnd
         7: .line 244
            aconst_null
            astore 13 /* destVectorEnd */
        start local 13 // org.graalvm.compiler.word.Unsigned destVectorEnd
         8: .line 245
            aconst_null
            astore 14 /* nonVectorBytes */
        start local 14 // org.graalvm.compiler.word.Unsigned nonVectorBytes
         9: .line 246
            iload 4 /* length */
            invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
            iload 6 /* log2ElementSize */
            invokevirtual org.graalvm.compiler.word.Word.shiftLeft:(I)Lorg/graalvm/compiler/word/Word;
            astore 15 /* sizeInBytes */
        start local 15 // org.graalvm.compiler.word.Unsigned sizeInBytes
        10: .line 247
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
            ifeq 14
        11: .line 248
            aload 15 /* sizeInBytes */
            aload 8 /* vectorSize */
            invokeinterface org.graalvm.compiler.word.Unsigned.unsignedRemainder:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            astore 14 /* nonVectorBytes */
        12: .line 249
            aload 12 /* destEnd */
            astore 13 /* destVectorEnd */
        13: .line 250
            goto 21
        14: .line 251
      StackMap locals: java.lang.Object int java.lang.Object int int int int int org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned org.graalvm.compiler.word.Unsigned
      StackMap stack:
            aload 9 /* srcOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            l2i
            iconst_1
            isub
            invokeinterface org.graalvm.compiler.word.Unsigned.and:(I)Lorg/graalvm/compiler/word/Unsigned;
            aload 10 /* destOffset */
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.VECTOR_SIZE:J
            l2i
            iconst_1
            isub
            invokeinterface org.graalvm.compiler.word.Unsigned.and:(I)Lorg/graalvm/compiler/word/Unsigned;
            invokeinterface org.graalvm.compiler.word.Unsigned.equal:(Lorg/graalvm/compiler/word/Unsigned;)Z
            istore 16 /* inPhase */
        start local 16 // boolean inPhase
        15: .line 252
            aload 15 /* sizeInBytes */
            aload 8 /* vectorSize */
            invokeinterface org.graalvm.compiler.word.Unsigned.aboveOrEqual:(Lorg/graalvm/compiler/word/Unsigned;)Z
            istore 17 /* hasAtLeastOneVector */
        start local 17 // boolean hasAtLeastOneVector
        16: .line 254
            iload 17 /* hasAtLeastOneVector */
            ifeq 19
            iload 16 /* inPhase */
            ifeq 19
        17: .line 255
            aload 8 /* vectorSize */
            aload 11 /* destStart */
            aload 8 /* vectorSize */
            invokeinterface org.graalvm.compiler.word.Unsigned.unsignedRemainder:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            invokeinterface org.graalvm.compiler.word.Unsigned.subtract:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            astore 14 /* nonVectorBytes */
        18: .line 256
            goto 20
        19: .line 257
      StackMap locals: int int
      StackMap stack:
            aload 15 /* sizeInBytes */
            astore 14 /* nonVectorBytes */
        20: .line 259
      StackMap locals:
      StackMap stack:
            aload 12 /* destEnd */
            aload 12 /* destEnd */
            aload 8 /* vectorSize */
            invokeinterface org.graalvm.compiler.word.Unsigned.unsignedRemainder:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            invokeinterface org.graalvm.compiler.word.Unsigned.subtract:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            astore 13 /* destVectorEnd */
        end local 17 // boolean hasAtLeastOneVector
        end local 16 // boolean inPhase
        21: .line 262
      StackMap locals:
      StackMap stack:
            aload 11 /* destStart */
            aload 14 /* nonVectorBytes */
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(Lorg/graalvm/compiler/word/Unsigned;)Lorg/graalvm/compiler/word/Unsigned;
            astore 16 /* destNonVectorEnd */
        start local 16 // org.graalvm.compiler.word.Unsigned destNonVectorEnd
        22: .line 263
            goto 26
        23: .line 264
      StackMap locals: org.graalvm.compiler.word.Unsigned
      StackMap stack:
            aload 2 /* dest */
            aload 10 /* destOffset */
            aload 0 /* src */
            aload 9 /* srcOffset */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.word.ObjectAccess.readByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)B
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.word.ObjectAccess.writeByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;BLorg/graalvm/compiler/core/common/LocationIdentity;)V
        24: .line 265
            aload 10 /* destOffset */
            iconst_1
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
            astore 10 /* destOffset */
        25: .line 266
            aload 9 /* srcOffset */
            iconst_1
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
            astore 9 /* srcOffset */
        26: .line 263
      StackMap locals:
      StackMap stack:
            aload 10 /* destOffset */
            aload 16 /* destNonVectorEnd */
            invokeinterface org.graalvm.compiler.word.Unsigned.belowThan:(Lorg/graalvm/compiler/word/Unsigned;)Z
            ifne 23
        27: .line 269
            goto 31
        28: .line 270
      StackMap locals:
      StackMap stack:
            aload 2 /* dest */
            aload 10 /* destOffset */
            aload 0 /* src */
            aload 9 /* srcOffset */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.word.ObjectAccess.readWord:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/word/Word;
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.word.ObjectAccess.writeWord:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)V
        29: .line 271
            aload 10 /* destOffset */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
            astore 10 /* destOffset */
        30: .line 272
            aload 9 /* srcOffset */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
            astore 9 /* srcOffset */
        31: .line 269
      StackMap locals:
      StackMap stack:
            aload 10 /* destOffset */
            aload 13 /* destVectorEnd */
            invokeinterface org.graalvm.compiler.word.Unsigned.belowThan:(Lorg/graalvm/compiler/word/Unsigned;)Z
            ifne 28
        32: .line 275
            goto 36
        33: .line 276
      StackMap locals:
      StackMap stack:
            aload 2 /* dest */
            aload 10 /* destOffset */
            aload 0 /* src */
            aload 9 /* srcOffset */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.word.ObjectAccess.readByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;Lorg/graalvm/compiler/core/common/LocationIdentity;)B
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
            invokestatic org.graalvm.compiler.word.ObjectAccess.writeByte:(Ljava/lang/Object;Lorg/graalvm/compiler/word/WordBase;BLorg/graalvm/compiler/core/common/LocationIdentity;)V
        34: .line 277
            aload 10 /* destOffset */
            iconst_1
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
            astore 10 /* destOffset */
        35: .line 278
            aload 9 /* srcOffset */
            iconst_1
            invokeinterface org.graalvm.compiler.word.Unsigned.add:(I)Lorg/graalvm/compiler/word/Unsigned;
            astore 9 /* srcOffset */
        36: .line 275
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets.supportsUnalignedMemoryAccess:Z
            ifne 37
            aload 10 /* destOffset */
            aload 12 /* destEnd */
            invokeinterface org.graalvm.compiler.word.Unsigned.belowThan:(Lorg/graalvm/compiler/word/Unsigned;)Z
            ifne 33
        37: .line 280
      StackMap locals:
      StackMap stack:
            return
        end local 16 // org.graalvm.compiler.word.Unsigned destNonVectorEnd
        end local 15 // org.graalvm.compiler.word.Unsigned sizeInBytes
        end local 14 // org.graalvm.compiler.word.Unsigned nonVectorBytes
        end local 13 // org.graalvm.compiler.word.Unsigned destVectorEnd
        end local 12 // org.graalvm.compiler.word.Unsigned destEnd
        end local 11 // org.graalvm.compiler.word.Unsigned destStart
        end local 10 // org.graalvm.compiler.word.Unsigned destOffset
        end local 9 // org.graalvm.compiler.word.Unsigned srcOffset
        end local 8 // org.graalvm.compiler.word.Unsigned vectorSize
        end local 7 // int headerSize
        end local 6 // int log2ElementSize
        end local 5 // int layoutHelper
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0                  src  Ljava/lang/Object;
            0   38     1               srcPos  I
            0   38     2                 dest  Ljava/lang/Object;
            0   38     3              destPos  I
            0   38     4               length  I
            0   38     5         layoutHelper  I
            1   38     6      log2ElementSize  I
            2   38     7           headerSize  I
            3   38     8           vectorSize  Lorg/graalvm/compiler/word/Unsigned;
            4   38     9            srcOffset  Lorg/graalvm/compiler/word/Unsigned;
            5   38    10           destOffset  Lorg/graalvm/compiler/word/Unsigned;
            6   38    11            destStart  Lorg/graalvm/compiler/word/Unsigned;
            7   38    12              destEnd  Lorg/graalvm/compiler/word/Unsigned;
            8   38    13        destVectorEnd  Lorg/graalvm/compiler/word/Unsigned;
            9   38    14       nonVectorBytes  Lorg/graalvm/compiler/word/Unsigned;
           10   38    15          sizeInBytes  Lorg/graalvm/compiler/word/Unsigned;
           15   21    16              inPhase  Z
           16   21    17  hasAtLeastOneVector  Z
           22   38    16     destNonVectorEnd  Lorg/graalvm/compiler/word/Unsigned;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
              Name  Flags
      src           
      srcPos        
      dest          
      destPos       
      length        
      layoutHelper  
}
SourceFile: "UnsafeArrayCopySnippets.java"
NestMembers:
  org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets$Templates
InnerClasses:
  public Templates = org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets$Templates of org.graalvm.compiler.hotspot.replacements.arraycopy.UnsafeArrayCopySnippets