1 /* 2 * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package org.openjdk.bench.valhalla.arraytotal.copy; 24 25 import org.openjdk.bench.valhalla.arraytotal.util.StatesR64long; 26 import org.openjdk.jmh.annotations.Benchmark; 27 import org.openjdk.jmh.annotations.CompilerControl; 28 29 public class IdentityArrayCopy extends StatesR64long { 30 31 @Benchmark 32 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 33 public void Obj_to_Obj_as_Obj_to_Obj_copy(Obj_as_Obj s, Obj_as_Obj d) { 34 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 35 } 36 37 @Benchmark 38 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 39 public void Obj_to_Int_as_Obj_to_Obj_copy(Obj_as_Obj s, Int_as_Obj d) { 40 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 41 } 42 43 @Benchmark 44 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 45 public void Obj_to_Abs_as_Obj_to_Obj_copy(Obj_as_Obj s, Abs_as_Obj d) { 46 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 47 } 48 49 @Benchmark 50 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 51 public void Obj_to_Ref_as_Obj_to_Obj_copy(Obj_as_Obj s, Ref_as_Obj d) { 52 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 53 } 54 55 @Benchmark 56 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 57 public void Obj_to_Int_as_Obj_to_Int_copy(Obj_as_Obj s, Int_as_Int d) { 58 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 59 } 60 61 @Benchmark 62 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 63 public void Obj_to_Abs_as_Obj_to_Int_copy(Obj_as_Obj s, Abs_as_Int d) { 64 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 65 } 66 67 @Benchmark 68 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 69 public void Obj_to_Ref_as_Obj_to_Int_copy(Obj_as_Obj s, Ref_as_Int d) { 70 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 71 } 72 73 @Benchmark 74 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 75 public void Obj_to_Abs_as_Obj_to_Abs_copy(Obj_as_Obj s, Abs_as_Abs d) { 76 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 77 } 78 79 @Benchmark 80 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 81 public void Obj_to_Ref_as_Obj_to_Abs_copy(Obj_as_Obj s, Ref_as_Abs d) { 82 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 83 } 84 85 @Benchmark 86 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 87 public void Obj_to_Ref_as_Obj_to_Ref_copy(Obj_as_Obj s, Ref_as_Ref d) { 88 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 89 } 90 91 @Benchmark 92 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 93 public void Int_to_Obj_as_Obj_to_Obj_copy(Int_as_Obj s, Obj_as_Obj d) { 94 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 95 } 96 97 @Benchmark 98 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 99 public void Int_to_Int_as_Obj_to_Obj_copy(Int_as_Obj s, Int_as_Obj d) { 100 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 101 } 102 103 @Benchmark 104 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 105 public void Int_to_Abs_as_Obj_to_Obj_copy(Int_as_Obj s, Abs_as_Obj d) { 106 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 107 } 108 109 @Benchmark 110 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 111 public void Int_to_Ref_as_Obj_to_Obj_copy(Int_as_Obj s, Ref_as_Obj d) { 112 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 113 } 114 115 @Benchmark 116 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 117 public void Int_to_Int_as_Obj_to_Int_copy(Int_as_Obj s, Int_as_Int d) { 118 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 119 } 120 121 @Benchmark 122 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 123 public void Int_to_Abs_as_Obj_to_Int_copy(Int_as_Obj s, Abs_as_Int d) { 124 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 125 } 126 127 @Benchmark 128 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 129 public void Int_to_Ref_as_Obj_to_Int_copy(Int_as_Obj s, Ref_as_Int d) { 130 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 131 } 132 133 @Benchmark 134 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 135 public void Int_to_Abs_as_Obj_to_Abs_copy(Int_as_Obj s, Abs_as_Abs d) { 136 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 137 } 138 139 @Benchmark 140 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 141 public void Int_to_Ref_as_Obj_to_Abs_copy(Int_as_Obj s, Ref_as_Abs d) { 142 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 143 } 144 145 @Benchmark 146 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 147 public void Int_to_Ref_as_Obj_to_Ref_copy(Int_as_Obj s, Ref_as_Ref d) { 148 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 149 } 150 151 @Benchmark 152 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 153 public void Abs_to_Obj_as_Obj_to_Obj_copy(Abs_as_Obj s, Obj_as_Obj d) { 154 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 155 } 156 157 @Benchmark 158 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 159 public void Abs_to_Int_as_Obj_to_Obj_copy(Abs_as_Obj s, Int_as_Obj d) { 160 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 161 } 162 163 @Benchmark 164 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 165 public void Abs_to_Abs_as_Obj_to_Obj_copy(Abs_as_Obj s, Abs_as_Obj d) { 166 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 167 } 168 169 @Benchmark 170 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 171 public void Abs_to_Ref_as_Obj_to_Obj_copy(Abs_as_Obj s, Ref_as_Obj d) { 172 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 173 } 174 175 @Benchmark 176 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 177 public void Abs_to_Int_as_Obj_to_Int_copy(Abs_as_Obj s, Int_as_Int d) { 178 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 179 } 180 181 @Benchmark 182 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 183 public void Abs_to_Abs_as_Obj_to_Int_copy(Abs_as_Obj s, Abs_as_Int d) { 184 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 185 } 186 187 @Benchmark 188 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 189 public void Abs_to_Ref_as_Obj_to_Int_copy(Abs_as_Obj s, Ref_as_Int d) { 190 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 191 } 192 193 @Benchmark 194 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 195 public void Abs_to_Abs_as_Obj_to_Abs_copy(Abs_as_Obj s, Abs_as_Abs d) { 196 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 197 } 198 199 @Benchmark 200 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 201 public void Abs_to_Ref_as_Obj_to_Abs_copy(Abs_as_Obj s, Ref_as_Abs d) { 202 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 203 } 204 205 @Benchmark 206 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 207 public void Abs_to_Ref_as_Obj_to_Ref_copy(Abs_as_Obj s, Ref_as_Ref d) { 208 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 209 } 210 211 @Benchmark 212 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 213 public void Ref_to_Obj_as_Obj_to_Obj_copy(Ref_as_Obj s, Obj_as_Obj d) { 214 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 215 } 216 217 @Benchmark 218 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 219 public void Ref_to_Int_as_Obj_to_Obj_copy(Ref_as_Obj s, Int_as_Obj d) { 220 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 221 } 222 223 @Benchmark 224 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 225 public void Ref_to_Abs_as_Obj_to_Obj_copy(Ref_as_Obj s, Abs_as_Obj d) { 226 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 227 } 228 229 @Benchmark 230 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 231 public void Ref_to_Ref_as_Obj_to_Obj_copy(Ref_as_Obj s, Ref_as_Obj d) { 232 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 233 } 234 235 @Benchmark 236 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 237 public void Ref_to_Int_as_Obj_to_Int_copy(Ref_as_Obj s, Int_as_Int d) { 238 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 239 } 240 241 @Benchmark 242 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 243 public void Ref_to_Abs_as_Obj_to_Int_copy(Ref_as_Obj s, Abs_as_Int d) { 244 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 245 } 246 247 @Benchmark 248 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 249 public void Ref_to_Ref_as_Obj_to_Int_copy(Ref_as_Obj s, Ref_as_Int d) { 250 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 251 } 252 253 @Benchmark 254 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 255 public void Ref_to_Abs_as_Obj_to_Abs_copy(Ref_as_Obj s, Abs_as_Abs d) { 256 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 257 } 258 259 @Benchmark 260 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 261 public void Ref_to_Ref_as_Obj_to_Abs_copy(Ref_as_Obj s, Ref_as_Abs d) { 262 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 263 } 264 265 @Benchmark 266 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 267 public void Ref_to_Ref_as_Obj_to_Ref_copy(Ref_as_Obj s, Ref_as_Ref d) { 268 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 269 } 270 271 @Benchmark 272 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 273 public void Int_to_Obj_as_Int_to_Obj_copy(Int_as_Int s, Obj_as_Obj d) { 274 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 275 } 276 277 @Benchmark 278 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 279 public void Int_to_Int_as_Int_to_Obj_copy(Int_as_Int s, Int_as_Obj d) { 280 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 281 } 282 283 @Benchmark 284 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 285 public void Int_to_Abs_as_Int_to_Obj_copy(Int_as_Int s, Abs_as_Obj d) { 286 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 287 } 288 289 @Benchmark 290 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 291 public void Int_to_Ref_as_Int_to_Obj_copy(Int_as_Int s, Ref_as_Obj d) { 292 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 293 } 294 295 @Benchmark 296 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 297 public void Int_to_Int_as_Int_to_Int_copy(Int_as_Int s, Int_as_Int d) { 298 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 299 } 300 301 @Benchmark 302 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 303 public void Int_to_Abs_as_Int_to_Int_copy(Int_as_Int s, Abs_as_Int d) { 304 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 305 } 306 307 @Benchmark 308 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 309 public void Int_to_Ref_as_Int_to_Int_copy(Int_as_Int s, Ref_as_Int d) { 310 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 311 } 312 313 @Benchmark 314 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 315 public void Int_to_Abs_as_Int_to_Abs_copy(Int_as_Int s, Abs_as_Abs d) { 316 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 317 } 318 319 @Benchmark 320 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 321 public void Int_to_Ref_as_Int_to_Abs_copy(Int_as_Int s, Ref_as_Abs d) { 322 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 323 } 324 325 @Benchmark 326 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 327 public void Int_to_Ref_as_Int_to_Ref_copy(Int_as_Int s, Ref_as_Ref d) { 328 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 329 } 330 331 @Benchmark 332 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 333 public void Abs_to_Obj_as_Int_to_Obj_copy(Abs_as_Int s, Obj_as_Obj d) { 334 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 335 } 336 337 @Benchmark 338 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 339 public void Abs_to_Int_as_Int_to_Obj_copy(Abs_as_Int s, Int_as_Obj d) { 340 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 341 } 342 343 @Benchmark 344 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 345 public void Abs_to_Abs_as_Int_to_Obj_copy(Abs_as_Int s, Abs_as_Obj d) { 346 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 347 } 348 349 @Benchmark 350 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 351 public void Abs_to_Ref_as_Int_to_Obj_copy(Abs_as_Int s, Ref_as_Obj d) { 352 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 353 } 354 355 @Benchmark 356 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 357 public void Abs_to_Int_as_Int_to_Int_copy(Abs_as_Int s, Int_as_Int d) { 358 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 359 } 360 361 @Benchmark 362 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 363 public void Abs_to_Abs_as_Int_to_Int_copy(Abs_as_Int s, Abs_as_Int d) { 364 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 365 } 366 367 @Benchmark 368 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 369 public void Abs_to_Ref_as_Int_to_Int_copy(Abs_as_Int s, Ref_as_Int d) { 370 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 371 } 372 373 @Benchmark 374 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 375 public void Abs_to_Abs_as_Int_to_Abs_copy(Abs_as_Int s, Abs_as_Abs d) { 376 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 377 } 378 379 @Benchmark 380 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 381 public void Abs_to_Ref_as_Int_to_Abs_copy(Abs_as_Int s, Ref_as_Abs d) { 382 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 383 } 384 385 @Benchmark 386 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 387 public void Abs_to_Ref_as_Int_to_Ref_copy(Abs_as_Int s, Ref_as_Ref d) { 388 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 389 } 390 391 @Benchmark 392 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 393 public void Ref_to_Obj_as_Int_to_Obj_copy(Ref_as_Int s, Obj_as_Obj d) { 394 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 395 } 396 397 @Benchmark 398 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 399 public void Ref_to_Int_as_Int_to_Obj_copy(Ref_as_Int s, Int_as_Obj d) { 400 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 401 } 402 403 @Benchmark 404 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 405 public void Ref_to_Abs_as_Int_to_Obj_copy(Ref_as_Int s, Abs_as_Obj d) { 406 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 407 } 408 409 @Benchmark 410 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 411 public void Ref_to_Ref_as_Int_to_Obj_copy(Ref_as_Int s, Ref_as_Obj d) { 412 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 413 } 414 415 @Benchmark 416 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 417 public void Ref_to_Int_as_Int_to_Int_copy(Ref_as_Int s, Int_as_Int d) { 418 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 419 } 420 421 @Benchmark 422 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 423 public void Ref_to_Abs_as_Int_to_Int_copy(Ref_as_Int s, Abs_as_Int d) { 424 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 425 } 426 427 @Benchmark 428 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 429 public void Ref_to_Ref_as_Int_to_Int_copy(Ref_as_Int s, Ref_as_Int d) { 430 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 431 } 432 433 @Benchmark 434 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 435 public void Ref_to_Abs_as_Int_to_Abs_copy(Ref_as_Int s, Abs_as_Abs d) { 436 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 437 } 438 439 @Benchmark 440 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 441 public void Ref_to_Ref_as_Int_to_Abs_copy(Ref_as_Int s, Ref_as_Abs d) { 442 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 443 } 444 445 @Benchmark 446 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 447 public void Ref_to_Ref_as_Int_to_Ref_copy(Ref_as_Int s, Ref_as_Ref d) { 448 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 449 } 450 451 @Benchmark 452 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 453 public void Abs_to_Obj_as_Abs_to_Obj_copy(Abs_as_Abs s, Obj_as_Obj d) { 454 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 455 } 456 457 @Benchmark 458 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 459 public void Abs_to_Int_as_Abs_to_Obj_copy(Abs_as_Abs s, Int_as_Obj d) { 460 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 461 } 462 463 @Benchmark 464 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 465 public void Abs_to_Abs_as_Abs_to_Obj_copy(Abs_as_Abs s, Abs_as_Obj d) { 466 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 467 } 468 469 @Benchmark 470 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 471 public void Abs_to_Ref_as_Abs_to_Obj_copy(Abs_as_Abs s, Ref_as_Obj d) { 472 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 473 } 474 475 @Benchmark 476 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 477 public void Abs_to_Int_as_Abs_to_Int_copy(Abs_as_Abs s, Int_as_Int d) { 478 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 479 } 480 481 @Benchmark 482 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 483 public void Abs_to_Abs_as_Abs_to_Int_copy(Abs_as_Abs s, Abs_as_Int d) { 484 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 485 } 486 487 @Benchmark 488 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 489 public void Abs_to_Ref_as_Abs_to_Int_copy(Abs_as_Abs s, Ref_as_Int d) { 490 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 491 } 492 493 @Benchmark 494 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 495 public void Abs_to_Abs_as_Abs_to_Abs_copy(Abs_as_Abs s, Abs_as_Abs d) { 496 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 497 } 498 499 @Benchmark 500 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 501 public void Abs_to_Ref_as_Abs_to_Abs_copy(Abs_as_Abs s, Ref_as_Abs d) { 502 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 503 } 504 505 @Benchmark 506 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 507 public void Abs_to_Ref_as_Abs_to_Ref_copy(Abs_as_Abs s, Ref_as_Ref d) { 508 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 509 } 510 511 @Benchmark 512 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 513 public void Ref_to_Obj_as_Abs_to_Obj_copy(Ref_as_Abs s, Obj_as_Obj d) { 514 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 515 } 516 517 @Benchmark 518 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 519 public void Ref_to_Int_as_Abs_to_Obj_copy(Ref_as_Abs s, Int_as_Obj d) { 520 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 521 } 522 523 @Benchmark 524 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 525 public void Ref_to_Abs_as_Abs_to_Obj_copy(Ref_as_Abs s, Abs_as_Obj d) { 526 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 527 } 528 529 @Benchmark 530 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 531 public void Ref_to_Ref_as_Abs_to_Obj_copy(Ref_as_Abs s, Ref_as_Obj d) { 532 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 533 } 534 535 @Benchmark 536 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 537 public void Ref_to_Int_as_Abs_to_Int_copy(Ref_as_Abs s, Int_as_Int d) { 538 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 539 } 540 541 @Benchmark 542 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 543 public void Ref_to_Abs_as_Abs_to_Int_copy(Ref_as_Abs s, Abs_as_Int d) { 544 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 545 } 546 547 @Benchmark 548 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 549 public void Ref_to_Ref_as_Abs_to_Int_copy(Ref_as_Abs s, Ref_as_Int d) { 550 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 551 } 552 553 @Benchmark 554 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 555 public void Ref_to_Abs_as_Abs_to_Abs_copy(Ref_as_Abs s, Abs_as_Abs d) { 556 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 557 } 558 559 @Benchmark 560 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 561 public void Ref_to_Ref_as_Abs_to_Abs_copy(Ref_as_Abs s, Ref_as_Abs d) { 562 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 563 } 564 565 @Benchmark 566 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 567 public void Ref_to_Ref_as_Abs_to_Ref_copy(Ref_as_Abs s, Ref_as_Ref d) { 568 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 569 } 570 571 @Benchmark 572 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 573 public void Ref_to_Obj_as_Ref_to_Obj_copy(Ref_as_Ref s, Obj_as_Obj d) { 574 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 575 } 576 577 @Benchmark 578 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 579 public void Ref_to_Int_as_Ref_to_Obj_copy(Ref_as_Ref s, Int_as_Obj d) { 580 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 581 } 582 583 @Benchmark 584 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 585 public void Ref_to_Abs_as_Ref_to_Obj_copy(Ref_as_Ref s, Abs_as_Obj d) { 586 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 587 } 588 589 @Benchmark 590 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 591 public void Ref_to_Ref_as_Ref_to_Obj_copy(Ref_as_Ref s, Ref_as_Obj d) { 592 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 593 } 594 595 @Benchmark 596 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 597 public void Ref_to_Int_as_Ref_to_Int_copy(Ref_as_Ref s, Int_as_Int d) { 598 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 599 } 600 601 @Benchmark 602 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 603 public void Ref_to_Abs_as_Ref_to_Int_copy(Ref_as_Ref s, Abs_as_Int d) { 604 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 605 } 606 607 @Benchmark 608 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 609 public void Ref_to_Ref_as_Ref_to_Int_copy(Ref_as_Ref s, Ref_as_Int d) { 610 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 611 } 612 613 @Benchmark 614 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 615 public void Ref_to_Abs_as_Ref_to_Abs_copy(Ref_as_Ref s, Abs_as_Abs d) { 616 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 617 } 618 619 @Benchmark 620 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 621 public void Ref_to_Ref_as_Ref_to_Abs_copy(Ref_as_Ref s, Ref_as_Abs d) { 622 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 623 } 624 625 @Benchmark 626 @CompilerControl(CompilerControl.Mode.DONT_INLINE) 627 public void Ref_to_Ref_as_Ref_to_Ref_copy(Ref_as_Ref s, Ref_as_Ref d) { 628 System.arraycopy(s.arr, 0, d.arr, 0, s.arr.length); 629 } 630 631 }