jdk8/jdk8/hotspot: 2e4b16122164 (original) (raw)
--- a/src/share/vm/opto/library_call.cpp Thu Feb 21 13:13:22 2013 +0100 +++ b/src/share/vm/opto/library_call.cpp Thu Feb 21 06:29:43 2013 -0800 @@ -1481,10 +1481,10 @@ Node* arg = round_double_node(argument(0)); Node* n; switch (id) {
- case vmIntrinsics::_dabs: n = new (C) AbsDNode( arg); break;
- case vmIntrinsics::_dsqrt: n = new (C) SqrtDNode(0, arg); break;
- case vmIntrinsics::_dlog: n = new (C) LogDNode( arg); break;
- case vmIntrinsics::_dlog10: n = new (C) Log10DNode( arg); break;
- case vmIntrinsics::_dabs: n = new (C) AbsDNode( arg); break;
- case vmIntrinsics::_dsqrt: n = new (C) SqrtDNode(C, control(), arg); break;
- case vmIntrinsics::_dlog: n = new (C) LogDNode(C, control(), arg); break;
- case vmIntrinsics::_dlog10: n = new (C) Log10DNode(C, control(), arg); break; default: fatal_unexpected_iid(id); break; } set_result(_gvn.transform(n)); @@ -1499,9 +1499,9 @@ Node* n = NULL; switch (id) {
- case vmIntrinsics::_dsin: n = new (C) SinDNode(arg); break;
- case vmIntrinsics::_dcos: n = new (C) CosDNode(arg); break;
- case vmIntrinsics::_dtan: n = new (C) TanDNode(arg); break;
- case vmIntrinsics::_dsin: n = new (C) SinDNode(C, control(), arg); break;
- case vmIntrinsics::_dcos: n = new (C) CosDNode(C, control(), arg); break;
- case vmIntrinsics::_dtan: n = new (C) TanDNode(C, control(), arg); break; default: fatal_unexpected_iid(id); break; } n = _gvn.transform(n);
--- a/src/share/vm/opto/subnode.hpp Thu Feb 21 13:13:22 2013 +0100 +++ b/src/share/vm/opto/subnode.hpp Thu Feb 21 06:29:43 2013 -0800 @@ -399,7 +399,10 @@ // Cosinus of a double class CosDNode : public Node { public:
- CosDNode(Compile* C, Node *c, Node *in1) : Node(c, in1) {
- init_flags(Flag_is_expensive);
- C->add_expensive_node(this);
- } virtual int Opcode() const; const Type *bottom_type() const { return Type::DOUBLE; } virtual uint ideal_reg() const { return Op_RegD; } @@ -410,7 +413,10 @@ // Sinus of a double class SinDNode : public Node { public:
- SinDNode(Compile* C, Node *c, Node *in1) : Node(c, in1) {
- init_flags(Flag_is_expensive);
- C->add_expensive_node(this);
- } virtual int Opcode() const; const Type *bottom_type() const { return Type::DOUBLE; } virtual uint ideal_reg() const { return Op_RegD; } @@ -422,7 +428,10 @@ // tangens of a double class TanDNode : public Node { public:
- TanDNode(Compile* C, Node *c,Node *in1) : Node(c, in1) {
- init_flags(Flag_is_expensive);
- C->add_expensive_node(this);
- } virtual int Opcode() const; const Type *bottom_type() const { return Type::DOUBLE; } virtual uint ideal_reg() const { return Op_RegD; } @@ -445,7 +454,10 @@ // square root a double class SqrtDNode : public Node { public:
- SqrtDNode(Compile* C, Node *c, Node *in1) : Node(c, in1) {
- init_flags(Flag_is_expensive);
- C->add_expensive_node(this);
- } virtual int Opcode() const; const Type *bottom_type() const { return Type::DOUBLE; } virtual uint ideal_reg() const { return Op_RegD; } @@ -470,7 +482,10 @@ // Log_e of a double class LogDNode : public Node { public:
- LogDNode(Compile* C, Node *c, Node *in1) : Node(c, in1) {
- init_flags(Flag_is_expensive);
- C->add_expensive_node(this);
- } virtual int Opcode() const; const Type *bottom_type() const { return Type::DOUBLE; } virtual uint ideal_reg() const { return Op_RegD; } @@ -481,7 +496,10 @@ // Log_10 of a double class Log10DNode : public Node { public:
- Log10DNode(Compile* C, Node *c, Node *in1) : Node(c, in1) {
- init_flags(Flag_is_expensive);
- C->add_expensive_node(this);
- } virtual int Opcode() const; const Type *bottom_type() const { return Type::DOUBLE; } virtual uint ideal_reg() const { return Op_RegD; }
--- a/src/share/vm/opto/superword.cpp Thu Feb 21 13:13:22 2013 +0100 +++ b/src/share/vm/opto/superword.cpp Thu Feb 21 06:29:43 2013 -0800 @@ -143,7 +143,8 @@ // Ready the block
dependence_graph(); @@ -615,6 +616,7 @@ if (n == stop) break; preds.push(n); prev = n;
@@ -1578,7 +1580,7 @@ //------------------------------construct_bb--------------------------- // Construct reverse postorder list of block members -void SuperWord::construct_bb() { +bool SuperWord::construct_bb() { Node* entry = bb(); assert(_stk.length() == 0, "stk is empty"); @@ -1596,6 +1598,12 @@ Node *n = lpt()->_body.at(i); set_bb_idx(n, i); // Create a temporary map if (in_bb(n)) {
if (n->is_LoadStore() || n->is_MergeMem() ||[](#l3.34)
(n->is_Proj() && !n->as_Proj()->is_CFG())) {[](#l3.35)
// Bailout if the loop has LoadStore, MergeMem or data Proj[](#l3.36)
// nodes. Superword optimization does not work with them.[](#l3.37)
return false;[](#l3.38)
}[](#l3.39) bb_ct++;[](#l3.40) if (!n->is_CFG()) {[](#l3.41) bool found = false;[](#l3.42)
@@ -1620,6 +1628,10 @@ if (in_bb(n) && (n->is_Phi() && n->bottom_type() == Type::MEMORY)) { Node* n_tail = n->in(LoopNode::LoopBackControl); if (n_tail != n->in(LoopNode::EntryControl)) {
if (!n_tail->is_Mem()) {[](#l3.47)
assert(n_tail->is_Mem(), err_msg_res("unexpected node for memory slice: %s", n_tail->Name()));[](#l3.48)
return false; // Bailout[](#l3.49)
}[](#l3.50) _mem_slice_head.push(n);[](#l3.51) _mem_slice_tail.push(n_tail);[](#l3.52) }[](#l3.53)
@@ -1695,6 +1707,7 @@ } #endif assert(rpo_idx == -1 && bb_ct == _block.length(), "all block members found");
- return (_mem_slice_head.length() > 0) || (_data_entry.length() > 0); } //------------------------------initialize_bb---------------------------
--- a/src/share/vm/opto/superword.hpp Thu Feb 21 13:13:22 2013 +0100 +++ b/src/share/vm/opto/superword.hpp Thu Feb 21 06:29:43 2013 -0800 @@ -380,7 +380,7 @@ // Is use->in(u_idx) a vector use? bool is_vector_use(Node* use, int u_idx); // Construct reverse postorder list of block members
- bool construct_bb(); // Initialize per node info void initialize_bb(); // Insert n into block after pos
--- a/test/compiler/5091921/Test6850611.java Thu Feb 21 13:13:22 2013 +0100 +++ b/test/compiler/5091921/Test6850611.java Thu Feb 21 06:29:43 2013 -0800 @@ -1,5 +1,5 @@ /*
- Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. *
- This code is free software; you can redistribute it and/or modify it @@ -27,7 +27,7 @@
- @bug 6850611
- @summary int / long arithmetic seems to be broken in 1.6.0_14 HotSpot Server VM (Win XP) *
--- a/test/compiler/5091921/Test6890943.java Thu Feb 21 13:13:22 2013 +0100 +++ b/test/compiler/5091921/Test6890943.java Thu Feb 21 06:29:43 2013 -0800 @@ -1,5 +1,5 @@ /*
- Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. *
- This code is free software; you can redistribute it and/or modify it @@ -27,7 +27,7 @@
- @bug 6890943
- @summary JVM mysteriously gives wrong result on 64-bit 1.6 VMs in hotspot mode. *
--- a/test/compiler/5091921/Test6890943.sh Thu Feb 21 13:13:22 2013 +0100 +++ b/test/compiler/5091921/Test6890943.sh Thu Feb 21 06:29:43 2013 -0800 @@ -1,6 +1,6 @@ #!/bin/sh
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,10 @@ ${TESTJAVA}/bin/javac -d . Test6890943.java -${TESTJAVA}/bin/java -XX:-PrintVMOptions ${TESTVMOPTS} Test6890943 < input6890943.txt > test.out 2>&1 +${TESTJAVA}/bin/java -XX:-PrintVMOptions -XX:+IgnoreUnrecognizedVMOptions ${TESTVMOPTS} Test6890943 < input6890943.txt > pretest.out 2>&1 + +# This test sometimes tickles an unrelated performance warning that interferes with diff. +grep -v 'warning: Performance bug: SystemDictionary' pretest.out > test.out diff output6890943.txt test.out
--- a/test/compiler/5091921/Test6905845.java Thu Feb 21 13:13:22 2013 +0100 +++ b/test/compiler/5091921/Test6905845.java Thu Feb 21 06:29:43 2013 -0800 @@ -1,5 +1,5 @@ /*
--- a/test/compiler/5091921/Test6992759.java Thu Feb 21 13:13:22 2013 +0100 +++ b/test/compiler/5091921/Test6992759.java Thu Feb 21 06:29:43 2013 -0800 @@ -1,5 +1,5 @@ /*
- Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. *
- This code is free software; you can redistribute it and/or modify it @@ -27,7 +27,7 @@
- @bug 6992759
- @summary Bad code generated for integer <= comparison, fails for Integer.MAX_VALUE *
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/compiler/8004867/TestIntAtomicCAS.java Thu Feb 21 06:29:43 2013 -0800 @@ -0,0 +1,969 @@ +/*
- *
- *
- *
- *
- or visit www.oracle.com if you need additional information or have any
- *
- */ + +/**
- *
- */ + +import java.util.concurrent.atomic.AtomicIntegerArray; + +public class TestIntAtomicCAS {
- private static final int ARRLEN = 97;
- private static final int ITERS = 11000;
- private static final int OFFSET = 3;
- private static final int SCALE = 2;
- private static final int ALIGN_OFF = 8;
- private static final int UNALIGN_OFF = 5; +
- public static void main(String args[]) {
- System.out.println("Testing Integer array atomic CAS operations");
- int errn = test(false);
- if (errn > 0) {
System.err.println("FAILED: " + errn + " errors");[](#l10.51)
System.exit(97);[](#l10.52)
- }
- System.out.println("PASSED");
- } +
- static int test(boolean test_only) {
- AtomicIntegerArray a1 = new AtomicIntegerArray(ARRLEN);
- AtomicIntegerArray a2 = new AtomicIntegerArray(ARRLEN);
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.set(i, -1);[](#l10.62)
a2.set(i, -1);[](#l10.63)
- }
- System.out.println("Warmup");
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l10.67)
test_vi(a2, 123, -1);[](#l10.68)
test_cp(a1, a2);[](#l10.69)
test_2ci(a1, a2);[](#l10.70)
test_2vi(a1, a2, 123, 103);[](#l10.71)
test_ci_neg(a1, 123);[](#l10.72)
test_vi_neg(a2, 123, 103);[](#l10.73)
test_cp_neg(a1, a2);[](#l10.74)
test_2ci_neg(a1, a2);[](#l10.75)
test_2vi_neg(a1, a2, 123, 103);[](#l10.76)
test_ci_oppos(a1, 123);[](#l10.77)
test_vi_oppos(a2, 123, 103);[](#l10.78)
test_cp_oppos(a1, a2);[](#l10.79)
test_2ci_oppos(a1, a2);[](#l10.80)
test_2vi_oppos(a1, a2, 123, 103);[](#l10.81)
test_ci_off(a1, 123);[](#l10.82)
test_vi_off(a2, 123, 103);[](#l10.83)
test_cp_off(a1, a2);[](#l10.84)
test_2ci_off(a1, a2);[](#l10.85)
test_2vi_off(a1, a2, 123, 103);[](#l10.86)
test_ci_inv(a1, OFFSET, 123);[](#l10.87)
test_vi_inv(a2, 123, OFFSET, 103);[](#l10.88)
test_cp_inv(a1, a2, OFFSET);[](#l10.89)
test_2ci_inv(a1, a2, OFFSET);[](#l10.90)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l10.91)
test_ci_scl(a1, 123);[](#l10.92)
test_vi_scl(a2, 123, 103);[](#l10.93)
test_cp_scl(a1, a2);[](#l10.94)
test_2ci_scl(a1, a2);[](#l10.95)
test_2vi_scl(a1, a2, 123, 103);[](#l10.96)
test_cp_alndst(a1, a2);[](#l10.97)
test_cp_alnsrc(a1, a2);[](#l10.98)
test_2ci_aln(a1, a2);[](#l10.99)
test_2vi_aln(a1, a2, 123, 103);[](#l10.100)
test_cp_unalndst(a1, a2);[](#l10.101)
test_cp_unalnsrc(a1, a2);[](#l10.102)
test_2ci_unaln(a1, a2);[](#l10.103)
test_2vi_unaln(a1, a2, 123, 103);[](#l10.104)
- }
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.set(i, -1);[](#l10.108)
a2.set(i, -1);[](#l10.109)
- }
- // Test and verify results
- System.out.println("Verification");
- int errn = 0;
- {
test_ci(a1);[](#l10.115)
for (int i=0; i<ARRLEN; i++) {[](#l10.116)
errn += verify("test_ci: a1", i, a1.get(i), -123);[](#l10.117)
}[](#l10.118)
test_vi(a2, 123, -1);[](#l10.119)
for (int i=0; i<ARRLEN; i++) {[](#l10.120)
errn += verify("test_vi: a2", i, a2.get(i), 123);[](#l10.121)
}[](#l10.122)
test_cp(a1, a2);[](#l10.123)
for (int i=0; i<ARRLEN; i++) {[](#l10.124)
errn += verify("test_cp: a1", i, a1.get(i), 123);[](#l10.125)
}[](#l10.126)
test_2ci(a1, a2);[](#l10.127)
for (int i=0; i<ARRLEN; i++) {[](#l10.128)
errn += verify("test_2ci: a1", i, a1.get(i), -123);[](#l10.129)
errn += verify("test_2ci: a2", i, a2.get(i), -103);[](#l10.130)
}[](#l10.131)
test_2vi(a1, a2, 123, 103);[](#l10.132)
for (int i=0; i<ARRLEN; i++) {[](#l10.133)
errn += verify("test_2vi: a1", i, a1.get(i), 123);[](#l10.134)
errn += verify("test_2vi: a2", i, a2.get(i), 103);[](#l10.135)
}[](#l10.136)
// Reset for negative stride[](#l10.137)
for (int i=0; i<ARRLEN; i++) {[](#l10.138)
a1.set(i, -1);[](#l10.139)
a2.set(i, -1);[](#l10.140)
}[](#l10.141)
test_ci_neg(a1, -1);[](#l10.142)
for (int i=0; i<ARRLEN; i++) {[](#l10.143)
errn += verify("test_ci_neg: a1", i, a1.get(i), -123);[](#l10.144)
}[](#l10.145)
test_vi_neg(a2, 123, -1);[](#l10.146)
for (int i=0; i<ARRLEN; i++) {[](#l10.147)
errn += verify("test_vi_neg: a2", i, a2.get(i), 123);[](#l10.148)
}[](#l10.149)
test_cp_neg(a1, a2);[](#l10.150)
for (int i=0; i<ARRLEN; i++) {[](#l10.151)
errn += verify("test_cp_neg: a1", i, a1.get(i), 123);[](#l10.152)
}[](#l10.153)
test_2ci_neg(a1, a2);[](#l10.154)
for (int i=0; i<ARRLEN; i++) {[](#l10.155)
errn += verify("test_2ci_neg: a1", i, a1.get(i), -123);[](#l10.156)
errn += verify("test_2ci_neg: a2", i, a2.get(i), -103);[](#l10.157)
}[](#l10.158)
test_2vi_neg(a1, a2, 123, 103);[](#l10.159)
for (int i=0; i<ARRLEN; i++) {[](#l10.160)
errn += verify("test_2vi_neg: a1", i, a1.get(i), 123);[](#l10.161)
errn += verify("test_2vi_neg: a2", i, a2.get(i), 103);[](#l10.162)
}[](#l10.163)
// Reset for opposite stride[](#l10.164)
for (int i=0; i<ARRLEN; i++) {[](#l10.165)
a1.set(i, -1);[](#l10.166)
a2.set(i, -1);[](#l10.167)
}[](#l10.168)
test_ci_oppos(a1, -1);[](#l10.169)
for (int i=0; i<ARRLEN; i++) {[](#l10.170)
errn += verify("test_ci_oppos: a1", i, a1.get(i), -123);[](#l10.171)
}[](#l10.172)
test_vi_oppos(a2, 123, -1);[](#l10.173)
for (int i=0; i<ARRLEN; i++) {[](#l10.174)
errn += verify("test_vi_oppos: a2", i, a2.get(i), 123);[](#l10.175)
}[](#l10.176)
test_cp_oppos(a1, a2);[](#l10.177)
for (int i=0; i<ARRLEN; i++) {[](#l10.178)
errn += verify("test_cp_oppos: a1", i, a1.get(i), 123);[](#l10.179)
}[](#l10.180)
test_2ci_oppos(a1, a2);[](#l10.181)
for (int i=0; i<ARRLEN; i++) {[](#l10.182)
errn += verify("test_2ci_oppos: a1", i, a1.get(i), -123);[](#l10.183)
errn += verify("test_2ci_oppos: a2", i, a2.get(i), -103);[](#l10.184)
}[](#l10.185)
test_2vi_oppos(a1, a2, 123, 103);[](#l10.186)
for (int i=0; i<ARRLEN; i++) {[](#l10.187)
errn += verify("test_2vi_oppos: a1", i, a1.get(i), 123);[](#l10.188)
errn += verify("test_2vi_oppos: a2", i, a2.get(i), 103);[](#l10.189)
}[](#l10.190)
// Reset for indexing with offset[](#l10.191)
for (int i=0; i<ARRLEN; i++) {[](#l10.192)
a1.set(i, -1);[](#l10.193)
a2.set(i, -1);[](#l10.194)
}[](#l10.195)
test_ci_off(a1, -1);[](#l10.196)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.197)
errn += verify("test_ci_off: a1", i, a1.get(i), -123);[](#l10.198)
}[](#l10.199)
test_vi_off(a2, 123, -1);[](#l10.200)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.201)
errn += verify("test_vi_off: a2", i, a2.get(i), 123);[](#l10.202)
}[](#l10.203)
test_cp_off(a1, a2);[](#l10.204)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.205)
errn += verify("test_cp_off: a1", i, a1.get(i), 123);[](#l10.206)
}[](#l10.207)
test_2ci_off(a1, a2);[](#l10.208)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.209)
errn += verify("test_2ci_off: a1", i, a1.get(i), -123);[](#l10.210)
errn += verify("test_2ci_off: a2", i, a2.get(i), -103);[](#l10.211)
}[](#l10.212)
test_2vi_off(a1, a2, 123, 103);[](#l10.213)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.214)
errn += verify("test_2vi_off: a1", i, a1.get(i), 123);[](#l10.215)
errn += verify("test_2vi_off: a2", i, a2.get(i), 103);[](#l10.216)
}[](#l10.217)
for (int i=0; i<OFFSET; i++) {[](#l10.218)
errn += verify("test_2vi_off: a1", i, a1.get(i), -1);[](#l10.219)
errn += verify("test_2vi_off: a2", i, a2.get(i), -1);[](#l10.220)
}[](#l10.221)
// Reset for indexing with invariant offset[](#l10.222)
for (int i=0; i<ARRLEN; i++) {[](#l10.223)
a1.set(i, -1);[](#l10.224)
a2.set(i, -1);[](#l10.225)
}[](#l10.226)
test_ci_inv(a1, OFFSET, -1);[](#l10.227)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.228)
errn += verify("test_ci_inv: a1", i, a1.get(i), -123);[](#l10.229)
}[](#l10.230)
test_vi_inv(a2, 123, OFFSET, -1);[](#l10.231)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.232)
errn += verify("test_vi_inv: a2", i, a2.get(i), 123);[](#l10.233)
}[](#l10.234)
test_cp_inv(a1, a2, OFFSET);[](#l10.235)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.236)
errn += verify("test_cp_inv: a1", i, a1.get(i), 123);[](#l10.237)
}[](#l10.238)
test_2ci_inv(a1, a2, OFFSET);[](#l10.239)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.240)
errn += verify("test_2ci_inv: a1", i, a1.get(i), -123);[](#l10.241)
errn += verify("test_2ci_inv: a2", i, a2.get(i), -103);[](#l10.242)
}[](#l10.243)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l10.244)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l10.245)
errn += verify("test_2vi_inv: a1", i, a1.get(i), 123);[](#l10.246)
errn += verify("test_2vi_inv: a2", i, a2.get(i), 103);[](#l10.247)
}[](#l10.248)
for (int i=0; i<OFFSET; i++) {[](#l10.249)
errn += verify("test_2vi_inv: a1", i, a1.get(i), -1);[](#l10.250)
errn += verify("test_2vi_inv: a2", i, a2.get(i), -1);[](#l10.251)
}[](#l10.252)
// Reset for indexing with scale[](#l10.253)
for (int i=0; i<ARRLEN; i++) {[](#l10.254)
a1.set(i, -1);[](#l10.255)
a2.set(i, -1);[](#l10.256)
}[](#l10.257)
test_ci_scl(a1, -1);[](#l10.258)
for (int i=0; i<ARRLEN; i++) {[](#l10.259)
int val = (i%SCALE != 0) ? -1 : -123;[](#l10.260)
errn += verify("test_ci_scl: a1", i, a1.get(i), val);[](#l10.261)
}[](#l10.262)
test_vi_scl(a2, 123, -1);[](#l10.263)
for (int i=0; i<ARRLEN; i++) {[](#l10.264)
int val = (i%SCALE != 0) ? -1 : 123;[](#l10.265)
errn += verify("test_vi_scl: a2", i, a2.get(i), val);[](#l10.266)
}[](#l10.267)
test_cp_scl(a1, a2);[](#l10.268)
for (int i=0; i<ARRLEN; i++) {[](#l10.269)
int val = (i%SCALE != 0) ? -1 : 123;[](#l10.270)
errn += verify("test_cp_scl: a1", i, a1.get(i), val);[](#l10.271)
}[](#l10.272)
test_2ci_scl(a1, a2);[](#l10.273)
for (int i=0; i<ARRLEN; i++) {[](#l10.274)
if (i%SCALE != 0) {[](#l10.275)
errn += verify("test_2ci_scl: a1", i, a1.get(i), -1);[](#l10.276)
} else if (i*SCALE < ARRLEN) {[](#l10.277)
errn += verify("test_2ci_scl: a1", i*SCALE, a1.get(i*SCALE), -123);[](#l10.278)
}[](#l10.279)
if (i%SCALE != 0) {[](#l10.280)
errn += verify("test_2ci_scl: a2", i, a2.get(i), -1);[](#l10.281)
} else if (i*SCALE < ARRLEN) {[](#l10.282)
errn += verify("test_2ci_scl: a2", i*SCALE, a2.get(i*SCALE), -103);[](#l10.283)
}[](#l10.284)
}[](#l10.285)
test_2vi_scl(a1, a2, 123, 103);[](#l10.286)
for (int i=0; i<ARRLEN; i++) {[](#l10.287)
if (i%SCALE != 0) {[](#l10.288)
errn += verify("test_2vi_scl: a1", i, a1.get(i), -1);[](#l10.289)
} else if (i*SCALE < ARRLEN) {[](#l10.290)
errn += verify("test_2vi_scl: a1", i*SCALE, a1.get(i*SCALE), 123);[](#l10.291)
}[](#l10.292)
if (i%SCALE != 0) {[](#l10.293)
errn += verify("test_2vi_scl: a2", i, a2.get(i), -1);[](#l10.294)
} else if (i*SCALE < ARRLEN) {[](#l10.295)
errn += verify("test_2vi_scl: a2", i*SCALE, a2.get(i*SCALE), 103);[](#l10.296)
}[](#l10.297)
}[](#l10.298)
// Reset for 2 arrays with relative aligned offset[](#l10.299)
for (int i=0; i<ARRLEN; i++) {[](#l10.300)
a1.set(i, -1);[](#l10.301)
a2.set(i, -1);[](#l10.302)
}[](#l10.303)
test_vi(a2, 123, -1);[](#l10.304)
test_cp_alndst(a1, a2);[](#l10.305)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.306)
errn += verify("test_cp_alndst: a1", i, a1.get(i), -1);[](#l10.307)
}[](#l10.308)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l10.309)
errn += verify("test_cp_alndst: a1", i, a1.get(i), 123);[](#l10.310)
}[](#l10.311)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.312)
a1.set(i, 123);[](#l10.313)
}[](#l10.314)
test_vi(a2, -123, 123);[](#l10.315)
test_cp_alnsrc(a1, a2);[](#l10.316)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l10.317)
errn += verify("test_cp_alnsrc: a1", i, a1.get(i), -123);[](#l10.318)
}[](#l10.319)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l10.320)
errn += verify("test_cp_alnsrc: a1", i, a1.get(i), 123);[](#l10.321)
}[](#l10.322)
for (int i=0; i<ARRLEN; i++) {[](#l10.323)
a1.set(i, -1);[](#l10.324)
a2.set(i, -1);[](#l10.325)
}[](#l10.326)
test_2ci_aln(a1, a2);[](#l10.327)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.328)
errn += verify("test_2ci_aln: a1", i, a1.get(i), -1);[](#l10.329)
}[](#l10.330)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l10.331)
errn += verify("test_2ci_aln: a1", i, a1.get(i), -123);[](#l10.332)
}[](#l10.333)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l10.334)
errn += verify("test_2ci_aln: a2", i, a2.get(i), -103);[](#l10.335)
}[](#l10.336)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l10.337)
errn += verify("test_2ci_aln: a2", i, a2.get(i), -1);[](#l10.338)
}[](#l10.339)
for (int i=0; i<ARRLEN; i++) {[](#l10.340)
a1.set(i, -1);[](#l10.341)
a2.set(i, -1);[](#l10.342)
}[](#l10.343)
test_2vi_aln(a1, a2, 123, 103);[](#l10.344)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l10.345)
errn += verify("test_2vi_aln: a1", i, a1.get(i), 123);[](#l10.346)
}[](#l10.347)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l10.348)
errn += verify("test_2vi_aln: a1", i, a1.get(i), -1);[](#l10.349)
}[](#l10.350)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.351)
errn += verify("test_2vi_aln: a2", i, a2.get(i), -1);[](#l10.352)
}[](#l10.353)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l10.354)
errn += verify("test_2vi_aln: a2", i, a2.get(i), 103);[](#l10.355)
}[](#l10.356)
// Reset for 2 arrays with relative unaligned offset[](#l10.358)
for (int i=0; i<ARRLEN; i++) {[](#l10.359)
a1.set(i, -1);[](#l10.360)
a2.set(i, -1);[](#l10.361)
}[](#l10.362)
test_vi(a2, 123, -1);[](#l10.363)
test_cp_unalndst(a1, a2);[](#l10.364)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l10.365)
errn += verify("test_cp_unalndst: a1", i, a1.get(i), -1);[](#l10.366)
}[](#l10.367)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.368)
errn += verify("test_cp_unalndst: a1", i, a1.get(i), 123);[](#l10.369)
}[](#l10.370)
test_vi(a2, -123, 123);[](#l10.371)
test_cp_unalnsrc(a1, a2);[](#l10.372)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l10.373)
errn += verify("test_cp_unalnsrc: a1", i, a1.get(i), -123);[](#l10.374)
}[](#l10.375)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.376)
errn += verify("test_cp_unalnsrc: a1", i, a1.get(i), 123);[](#l10.377)
}[](#l10.378)
for (int i=0; i<ARRLEN; i++) {[](#l10.379)
a1.set(i, -1);[](#l10.380)
a2.set(i, -1);[](#l10.381)
}[](#l10.382)
test_2ci_unaln(a1, a2);[](#l10.383)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l10.384)
errn += verify("test_2ci_unaln: a1", i, a1.get(i), -1);[](#l10.385)
}[](#l10.386)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.387)
errn += verify("test_2ci_unaln: a1", i, a1.get(i), -123);[](#l10.388)
}[](#l10.389)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l10.390)
errn += verify("test_2ci_unaln: a2", i, a2.get(i), -103);[](#l10.391)
}[](#l10.392)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.393)
errn += verify("test_2ci_unaln: a2", i, a2.get(i), -1);[](#l10.394)
}[](#l10.395)
for (int i=0; i<ARRLEN; i++) {[](#l10.396)
a1.set(i, -1);[](#l10.397)
a2.set(i, -1);[](#l10.398)
}[](#l10.399)
test_2vi_unaln(a1, a2, 123, 103);[](#l10.400)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l10.401)
errn += verify("test_2vi_unaln: a1", i, a1.get(i), 123);[](#l10.402)
}[](#l10.403)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.404)
errn += verify("test_2vi_unaln: a1", i, a1.get(i), -1);[](#l10.405)
}[](#l10.406)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l10.407)
errn += verify("test_2vi_unaln: a2", i, a2.get(i), -1);[](#l10.408)
}[](#l10.409)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.410)
errn += verify("test_2vi_unaln: a2", i, a2.get(i), 103);[](#l10.411)
}[](#l10.412)
// Reset for aligned overlap initialization[](#l10.414)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.415)
a1.set(i, i);[](#l10.416)
}[](#l10.417)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l10.418)
a1.set(i, -1);[](#l10.419)
}[](#l10.420)
test_cp_alndst(a1, a1);[](#l10.421)
for (int i=0; i<ARRLEN; i++) {[](#l10.422)
int v = i%ALIGN_OFF;[](#l10.423)
errn += verify("test_cp_alndst_overlap: a1", i, a1.get(i), v);[](#l10.424)
}[](#l10.425)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.426)
a1.set((i+ALIGN_OFF), -1);[](#l10.427)
}[](#l10.428)
test_cp_alnsrc(a1, a1);[](#l10.429)
for (int i=0; i<ALIGN_OFF; i++) {[](#l10.430)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1.get(i), -1);[](#l10.431)
}[](#l10.432)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l10.433)
int v = i%ALIGN_OFF;[](#l10.434)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1.get(i), v);[](#l10.435)
}[](#l10.436)
for (int i=0; i<ARRLEN; i++) {[](#l10.437)
a1.set(i, -1);[](#l10.438)
}[](#l10.439)
test_2ci_aln(a1, a1);[](#l10.440)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l10.441)
errn += verify("test_2ci_aln_overlap: a1", i, a1.get(i), -103);[](#l10.442)
}[](#l10.443)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l10.444)
errn += verify("test_2ci_aln_overlap: a1", i, a1.get(i), -123);[](#l10.445)
}[](#l10.446)
for (int i=0; i<ARRLEN; i++) {[](#l10.447)
a1.set(i, -1);[](#l10.448)
}[](#l10.449)
test_2vi_aln(a1, a1, 123, 103);[](#l10.450)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l10.451)
errn += verify("test_2vi_aln_overlap: a1", i, a1.get(i), 123);[](#l10.452)
}[](#l10.453)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l10.454)
errn += verify("test_2vi_aln_overlap: a1", i, a1.get(i), 103);[](#l10.455)
}[](#l10.456)
// Reset for unaligned overlap initialization[](#l10.458)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l10.459)
a1.set(i, i);[](#l10.460)
}[](#l10.461)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.462)
a1.set(i, -1);[](#l10.463)
}[](#l10.464)
test_cp_unalndst(a1, a1);[](#l10.465)
for (int i=0; i<ARRLEN; i++) {[](#l10.466)
int v = i%UNALIGN_OFF;[](#l10.467)
errn += verify("test_cp_unalndst_overlap: a1", i, a1.get(i), v);[](#l10.468)
}[](#l10.469)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l10.470)
a1.set((i+UNALIGN_OFF), -1);[](#l10.471)
}[](#l10.472)
test_cp_unalnsrc(a1, a1);[](#l10.473)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l10.474)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1.get(i), -1);[](#l10.475)
}[](#l10.476)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.477)
int v = i%UNALIGN_OFF;[](#l10.478)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1.get(i), v);[](#l10.479)
}[](#l10.480)
for (int i=0; i<ARRLEN; i++) {[](#l10.481)
a1.set(i, -1);[](#l10.482)
}[](#l10.483)
test_2ci_unaln(a1, a1);[](#l10.484)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l10.485)
errn += verify("test_2ci_unaln_overlap: a1", i, a1.get(i), -103);[](#l10.486)
}[](#l10.487)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.488)
errn += verify("test_2ci_unaln_overlap: a1", i, a1.get(i), -123);[](#l10.489)
}[](#l10.490)
for (int i=0; i<ARRLEN; i++) {[](#l10.491)
a1.set(i, -1);[](#l10.492)
}[](#l10.493)
test_2vi_unaln(a1, a1, 123, 103);[](#l10.494)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l10.495)
errn += verify("test_2vi_unaln_overlap: a1", i, a1.get(i), 123);[](#l10.496)
}[](#l10.497)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l10.498)
errn += verify("test_2vi_unaln_overlap: a1", i, a1.get(i), 103);[](#l10.499)
}[](#l10.500)
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.set(i, -1);[](#l10.509)
a2.set(i, -1);[](#l10.510)
- }
- System.out.println("Time");
- long start, end;
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l10.516)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi(a2, 123, -1);[](#l10.522)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp(a1, a2);[](#l10.528)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci(a1, a2);[](#l10.534)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi(a1, a2, 123, 103);[](#l10.540)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_neg(a1, 123);[](#l10.547)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_neg(a2, 123, 103);[](#l10.553)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_neg(a1, a2);[](#l10.559)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_neg(a1, a2);[](#l10.565)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_neg(a1, a2, 123, 103);[](#l10.571)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_oppos(a1, 123);[](#l10.578)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_oppos(a2, 123, 103);[](#l10.584)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_oppos(a1, a2);[](#l10.590)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_oppos(a1, a2);[](#l10.596)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_oppos(a1, a2, 123, 103);[](#l10.602)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_off(a1, 123);[](#l10.609)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_off(a2, 123, 103);[](#l10.615)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_off(a1, a2);[](#l10.621)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_off(a1, a2);[](#l10.627)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_off(a1, a2, 123, 103);[](#l10.633)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_inv(a1, OFFSET, 123);[](#l10.640)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_inv(a2, 123, OFFSET, 103);[](#l10.646)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_inv(a1, a2, OFFSET);[](#l10.652)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_inv(a1, a2, OFFSET);[](#l10.658)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l10.664)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_scl(a1, 123);[](#l10.671)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_scl(a2, 123, 103);[](#l10.677)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_scl(a1, a2);[](#l10.683)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_scl(a1, a2);[](#l10.689)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_scl(a1, a2, 123, 103);[](#l10.695)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alndst(a1, a2);[](#l10.702)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alnsrc(a1, a2);[](#l10.708)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_aln(a1, a2);[](#l10.714)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_aln(a1, a2, 123, 103);[](#l10.720)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalndst(a1, a2);[](#l10.727)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalnsrc(a1, a2);[](#l10.733)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_unaln(a1, a2);[](#l10.739)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_unaln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_unaln(a1, a2, 123, 103);[](#l10.745)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_unaln: " + (end - start));
- return errn;
- } +
- static void test_ci(AtomicIntegerArray a) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet(i, -1, -123);[](#l10.755)
- }
- }
- static void test_vi(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet(i, old, b);[](#l10.760)
- }
- }
- static void test_cp(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet(i, -123, b.get(i));[](#l10.765)
- }
- }
- static void test_2ci(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet(i, 123, -123);[](#l10.770)
b.compareAndSet(i, 123, -103);[](#l10.771)
- }
- }
- static void test_2vi(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet(i, -123, c);[](#l10.776)
b.compareAndSet(i, -103, d);[](#l10.777)
- }
- }
- static void test_ci_neg(AtomicIntegerArray a, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.compareAndSet(i, old, -123);[](#l10.782)
- }
- }
- static void test_vi_neg(AtomicIntegerArray a, int b, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.compareAndSet(i, old, b);[](#l10.787)
- }
- }
- static void test_cp_neg(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.compareAndSet(i, -123, b.get(i));[](#l10.792)
- }
- }
- static void test_2ci_neg(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.compareAndSet(i, 123, -123);[](#l10.797)
b.compareAndSet(i, 123, -103);[](#l10.798)
- }
- }
- static void test_2vi_neg(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.compareAndSet(i, -123, c);[](#l10.803)
b.compareAndSet(i, -103, d);[](#l10.804)
- }
- }
- static void test_ci_oppos(AtomicIntegerArray a, int old) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet((limit-i), old, -123);[](#l10.810)
- }
- }
- static void test_vi_oppos(AtomicIntegerArray a, int b, int old) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
a.compareAndSet((limit-i), old, b);[](#l10.816)
- }
- }
- static void test_cp_oppos(AtomicIntegerArray a, AtomicIntegerArray b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet(i, -123, b.get(limit-i));[](#l10.822)
- }
- }
- static void test_2ci_oppos(AtomicIntegerArray a, AtomicIntegerArray b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.compareAndSet((limit-i), 123, -123);[](#l10.828)
b.compareAndSet(i, 123, -103);[](#l10.829)
- }
- }
- static void test_2vi_oppos(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
a.compareAndSet(i, -123, c);[](#l10.835)
b.compareAndSet((limit-i), -103, d);[](#l10.836)
- }
- }
- static void test_ci_off(AtomicIntegerArray a, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.compareAndSet((i+OFFSET), old, -123);[](#l10.841)
- }
- }
- static void test_vi_off(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.compareAndSet((i+OFFSET), old, b);[](#l10.846)
- }
- }
- static void test_cp_off(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.compareAndSet((i+OFFSET), -123, b.get(i+OFFSET));[](#l10.851)
- }
- }
- static void test_2ci_off(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.compareAndSet((i+OFFSET), 123, -123);[](#l10.856)
b.compareAndSet((i+OFFSET), 123, -103);[](#l10.857)
- }
- }
- static void test_2vi_off(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.compareAndSet((i+OFFSET), -123, c);[](#l10.862)
b.compareAndSet((i+OFFSET), -103, d);[](#l10.863)
- }
- }
- static void test_ci_inv(AtomicIntegerArray a, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.compareAndSet((i+k), old, -123);[](#l10.868)
- }
- }
- static void test_vi_inv(AtomicIntegerArray a, int b, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.compareAndSet((i+k), old, b);[](#l10.873)
- }
- }
- static void test_cp_inv(AtomicIntegerArray a, AtomicIntegerArray b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.compareAndSet((i+k), -123, b.get(i+k));[](#l10.878)
- }
- }
- static void test_2ci_inv(AtomicIntegerArray a, AtomicIntegerArray b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.compareAndSet((i+k), 123, -123);[](#l10.883)
b.compareAndSet((i+k), 123, -103);[](#l10.884)
- }
- }
- static void test_2vi_inv(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.compareAndSet((i+k), -123, c);[](#l10.889)
b.compareAndSet((i+k), -103, d);[](#l10.890)
- }
- }
- static void test_ci_scl(AtomicIntegerArray a, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.compareAndSet((i*SCALE), old, -123);[](#l10.895)
- }
- }
- static void test_vi_scl(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.compareAndSet((i*SCALE), old, b);[](#l10.900)
- }
- }
- static void test_cp_scl(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.compareAndSet((i*SCALE), -123, b.get(i*SCALE));[](#l10.905)
- }
- }
- static void test_2ci_scl(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.compareAndSet((i*SCALE), 123, -123);[](#l10.910)
b.compareAndSet((i*SCALE), 123, -103);[](#l10.911)
- }
- }
- static void test_2vi_scl(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.compareAndSet((i*SCALE), -123, c);[](#l10.916)
b.compareAndSet((i*SCALE), -103, d);[](#l10.917)
- }
- }
- static void test_cp_alndst(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.compareAndSet((i+ALIGN_OFF), -1, b.get(i));[](#l10.922)
- }
- }
- static void test_cp_alnsrc(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.getAndSet(i, b.get(i+ALIGN_OFF));[](#l10.927)
- }
- }
- static void test_2ci_aln(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.compareAndSet((i+ALIGN_OFF), -1, -123);[](#l10.932)
b.getAndSet(i, -103);[](#l10.933)
- }
- }
- static void test_2vi_aln(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.getAndSet(i, c);[](#l10.938)
b.getAndSet((i+ALIGN_OFF), d);[](#l10.939)
- }
- }
- static void test_cp_unalndst(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.compareAndSet((i+UNALIGN_OFF), -1, b.get(i));[](#l10.944)
- }
- }
- static void test_cp_unalnsrc(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.getAndSet(i, b.get(i+UNALIGN_OFF));[](#l10.949)
- }
- }
- static void test_2ci_unaln(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.compareAndSet((i+UNALIGN_OFF), -1, -123);[](#l10.954)
b.getAndSet(i, -103);[](#l10.955)
- }
- }
- static void test_2vi_unaln(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.getAndSet(i, c);[](#l10.960)
b.getAndSet((i+UNALIGN_OFF), d);[](#l10.961)
- }
- } +
- static int verify(String text, int i, int elem, int val) {
- if (elem != val) {
System.err.println(text + "[" + i + "] = " + elem + " != " + val);[](#l10.967)
return 1;[](#l10.968)
- }
- return 0;
- } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/compiler/8004867/TestIntAtomicOrdered.java Thu Feb 21 06:29:43 2013 -0800 @@ -0,0 +1,969 @@ +/*
- *
- *
- *
- *
- or visit www.oracle.com if you need additional information or have any
- *
- */ + +/**
- *
- */ + +import java.util.concurrent.atomic.AtomicIntegerArray; + +public class TestIntAtomicOrdered {
- private static final int ARRLEN = 97;
- private static final int ITERS = 11000;
- private static final int OFFSET = 3;
- private static final int SCALE = 2;
- private static final int ALIGN_OFF = 8;
- private static final int UNALIGN_OFF = 5; +
- public static void main(String args[]) {
- System.out.println("Testing Integer array atomic ordered operations");
- int errn = test(false);
- if (errn > 0) {
System.err.println("FAILED: " + errn + " errors");[](#l11.51)
System.exit(97);[](#l11.52)
- }
- System.out.println("PASSED");
- } +
- static int test(boolean test_only) {
- AtomicIntegerArray a1 = new AtomicIntegerArray(ARRLEN);
- AtomicIntegerArray a2 = new AtomicIntegerArray(ARRLEN);
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.lazySet(i, -1);[](#l11.62)
a2.lazySet(i, -1);[](#l11.63)
- }
- System.out.println("Warmup");
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l11.67)
test_vi(a2, 123, -1);[](#l11.68)
test_cp(a1, a2);[](#l11.69)
test_2ci(a1, a2);[](#l11.70)
test_2vi(a1, a2, 123, 103);[](#l11.71)
test_ci_neg(a1, 123);[](#l11.72)
test_vi_neg(a2, 123, 103);[](#l11.73)
test_cp_neg(a1, a2);[](#l11.74)
test_2ci_neg(a1, a2);[](#l11.75)
test_2vi_neg(a1, a2, 123, 103);[](#l11.76)
test_ci_oppos(a1, 123);[](#l11.77)
test_vi_oppos(a2, 123, 103);[](#l11.78)
test_cp_oppos(a1, a2);[](#l11.79)
test_2ci_oppos(a1, a2);[](#l11.80)
test_2vi_oppos(a1, a2, 123, 103);[](#l11.81)
test_ci_off(a1, 123);[](#l11.82)
test_vi_off(a2, 123, 103);[](#l11.83)
test_cp_off(a1, a2);[](#l11.84)
test_2ci_off(a1, a2);[](#l11.85)
test_2vi_off(a1, a2, 123, 103);[](#l11.86)
test_ci_inv(a1, OFFSET, 123);[](#l11.87)
test_vi_inv(a2, 123, OFFSET, 103);[](#l11.88)
test_cp_inv(a1, a2, OFFSET);[](#l11.89)
test_2ci_inv(a1, a2, OFFSET);[](#l11.90)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l11.91)
test_ci_scl(a1, 123);[](#l11.92)
test_vi_scl(a2, 123, 103);[](#l11.93)
test_cp_scl(a1, a2);[](#l11.94)
test_2ci_scl(a1, a2);[](#l11.95)
test_2vi_scl(a1, a2, 123, 103);[](#l11.96)
test_cp_alndst(a1, a2);[](#l11.97)
test_cp_alnsrc(a1, a2);[](#l11.98)
test_2ci_aln(a1, a2);[](#l11.99)
test_2vi_aln(a1, a2, 123, 103);[](#l11.100)
test_cp_unalndst(a1, a2);[](#l11.101)
test_cp_unalnsrc(a1, a2);[](#l11.102)
test_2ci_unaln(a1, a2);[](#l11.103)
test_2vi_unaln(a1, a2, 123, 103);[](#l11.104)
- }
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.lazySet(i, -1);[](#l11.108)
a2.lazySet(i, -1);[](#l11.109)
- }
- // Test and verify results
- System.out.println("Verification");
- int errn = 0;
- {
test_ci(a1);[](#l11.115)
for (int i=0; i<ARRLEN; i++) {[](#l11.116)
errn += verify("test_ci: a1", i, a1.get(i), -123);[](#l11.117)
}[](#l11.118)
test_vi(a2, 123, -1);[](#l11.119)
for (int i=0; i<ARRLEN; i++) {[](#l11.120)
errn += verify("test_vi: a2", i, a2.get(i), 123);[](#l11.121)
}[](#l11.122)
test_cp(a1, a2);[](#l11.123)
for (int i=0; i<ARRLEN; i++) {[](#l11.124)
errn += verify("test_cp: a1", i, a1.get(i), 123);[](#l11.125)
}[](#l11.126)
test_2ci(a1, a2);[](#l11.127)
for (int i=0; i<ARRLEN; i++) {[](#l11.128)
errn += verify("test_2ci: a1", i, a1.get(i), -123);[](#l11.129)
errn += verify("test_2ci: a2", i, a2.get(i), -103);[](#l11.130)
}[](#l11.131)
test_2vi(a1, a2, 123, 103);[](#l11.132)
for (int i=0; i<ARRLEN; i++) {[](#l11.133)
errn += verify("test_2vi: a1", i, a1.get(i), 123);[](#l11.134)
errn += verify("test_2vi: a2", i, a2.get(i), 103);[](#l11.135)
}[](#l11.136)
// Reset for negative stride[](#l11.137)
for (int i=0; i<ARRLEN; i++) {[](#l11.138)
a1.lazySet(i, -1);[](#l11.139)
a2.lazySet(i, -1);[](#l11.140)
}[](#l11.141)
test_ci_neg(a1, -1);[](#l11.142)
for (int i=0; i<ARRLEN; i++) {[](#l11.143)
errn += verify("test_ci_neg: a1", i, a1.get(i), -123);[](#l11.144)
}[](#l11.145)
test_vi_neg(a2, 123, -1);[](#l11.146)
for (int i=0; i<ARRLEN; i++) {[](#l11.147)
errn += verify("test_vi_neg: a2", i, a2.get(i), 123);[](#l11.148)
}[](#l11.149)
test_cp_neg(a1, a2);[](#l11.150)
for (int i=0; i<ARRLEN; i++) {[](#l11.151)
errn += verify("test_cp_neg: a1", i, a1.get(i), 123);[](#l11.152)
}[](#l11.153)
test_2ci_neg(a1, a2);[](#l11.154)
for (int i=0; i<ARRLEN; i++) {[](#l11.155)
errn += verify("test_2ci_neg: a1", i, a1.get(i), -123);[](#l11.156)
errn += verify("test_2ci_neg: a2", i, a2.get(i), -103);[](#l11.157)
}[](#l11.158)
test_2vi_neg(a1, a2, 123, 103);[](#l11.159)
for (int i=0; i<ARRLEN; i++) {[](#l11.160)
errn += verify("test_2vi_neg: a1", i, a1.get(i), 123);[](#l11.161)
errn += verify("test_2vi_neg: a2", i, a2.get(i), 103);[](#l11.162)
}[](#l11.163)
// Reset for opposite stride[](#l11.164)
for (int i=0; i<ARRLEN; i++) {[](#l11.165)
a1.lazySet(i, -1);[](#l11.166)
a2.lazySet(i, -1);[](#l11.167)
}[](#l11.168)
test_ci_oppos(a1, -1);[](#l11.169)
for (int i=0; i<ARRLEN; i++) {[](#l11.170)
errn += verify("test_ci_oppos: a1", i, a1.get(i), -123);[](#l11.171)
}[](#l11.172)
test_vi_oppos(a2, 123, -1);[](#l11.173)
for (int i=0; i<ARRLEN; i++) {[](#l11.174)
errn += verify("test_vi_oppos: a2", i, a2.get(i), 123);[](#l11.175)
}[](#l11.176)
test_cp_oppos(a1, a2);[](#l11.177)
for (int i=0; i<ARRLEN; i++) {[](#l11.178)
errn += verify("test_cp_oppos: a1", i, a1.get(i), 123);[](#l11.179)
}[](#l11.180)
test_2ci_oppos(a1, a2);[](#l11.181)
for (int i=0; i<ARRLEN; i++) {[](#l11.182)
errn += verify("test_2ci_oppos: a1", i, a1.get(i), -123);[](#l11.183)
errn += verify("test_2ci_oppos: a2", i, a2.get(i), -103);[](#l11.184)
}[](#l11.185)
test_2vi_oppos(a1, a2, 123, 103);[](#l11.186)
for (int i=0; i<ARRLEN; i++) {[](#l11.187)
errn += verify("test_2vi_oppos: a1", i, a1.get(i), 123);[](#l11.188)
errn += verify("test_2vi_oppos: a2", i, a2.get(i), 103);[](#l11.189)
}[](#l11.190)
// Reset for indexing with offset[](#l11.191)
for (int i=0; i<ARRLEN; i++) {[](#l11.192)
a1.lazySet(i, -1);[](#l11.193)
a2.lazySet(i, -1);[](#l11.194)
}[](#l11.195)
test_ci_off(a1, -1);[](#l11.196)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.197)
errn += verify("test_ci_off: a1", i, a1.get(i), -123);[](#l11.198)
}[](#l11.199)
test_vi_off(a2, 123, -1);[](#l11.200)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.201)
errn += verify("test_vi_off: a2", i, a2.get(i), 123);[](#l11.202)
}[](#l11.203)
test_cp_off(a1, a2);[](#l11.204)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.205)
errn += verify("test_cp_off: a1", i, a1.get(i), 123);[](#l11.206)
}[](#l11.207)
test_2ci_off(a1, a2);[](#l11.208)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.209)
errn += verify("test_2ci_off: a1", i, a1.get(i), -123);[](#l11.210)
errn += verify("test_2ci_off: a2", i, a2.get(i), -103);[](#l11.211)
}[](#l11.212)
test_2vi_off(a1, a2, 123, 103);[](#l11.213)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.214)
errn += verify("test_2vi_off: a1", i, a1.get(i), 123);[](#l11.215)
errn += verify("test_2vi_off: a2", i, a2.get(i), 103);[](#l11.216)
}[](#l11.217)
for (int i=0; i<OFFSET; i++) {[](#l11.218)
errn += verify("test_2vi_off: a1", i, a1.get(i), -1);[](#l11.219)
errn += verify("test_2vi_off: a2", i, a2.get(i), -1);[](#l11.220)
}[](#l11.221)
// Reset for indexing with invariant offset[](#l11.222)
for (int i=0; i<ARRLEN; i++) {[](#l11.223)
a1.lazySet(i, -1);[](#l11.224)
a2.lazySet(i, -1);[](#l11.225)
}[](#l11.226)
test_ci_inv(a1, OFFSET, -1);[](#l11.227)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.228)
errn += verify("test_ci_inv: a1", i, a1.get(i), -123);[](#l11.229)
}[](#l11.230)
test_vi_inv(a2, 123, OFFSET, -1);[](#l11.231)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.232)
errn += verify("test_vi_inv: a2", i, a2.get(i), 123);[](#l11.233)
}[](#l11.234)
test_cp_inv(a1, a2, OFFSET);[](#l11.235)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.236)
errn += verify("test_cp_inv: a1", i, a1.get(i), 123);[](#l11.237)
}[](#l11.238)
test_2ci_inv(a1, a2, OFFSET);[](#l11.239)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.240)
errn += verify("test_2ci_inv: a1", i, a1.get(i), -123);[](#l11.241)
errn += verify("test_2ci_inv: a2", i, a2.get(i), -103);[](#l11.242)
}[](#l11.243)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l11.244)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l11.245)
errn += verify("test_2vi_inv: a1", i, a1.get(i), 123);[](#l11.246)
errn += verify("test_2vi_inv: a2", i, a2.get(i), 103);[](#l11.247)
}[](#l11.248)
for (int i=0; i<OFFSET; i++) {[](#l11.249)
errn += verify("test_2vi_inv: a1", i, a1.get(i), -1);[](#l11.250)
errn += verify("test_2vi_inv: a2", i, a2.get(i), -1);[](#l11.251)
}[](#l11.252)
// Reset for indexing with scale[](#l11.253)
for (int i=0; i<ARRLEN; i++) {[](#l11.254)
a1.lazySet(i, -1);[](#l11.255)
a2.lazySet(i, -1);[](#l11.256)
}[](#l11.257)
test_ci_scl(a1, -1);[](#l11.258)
for (int i=0; i<ARRLEN; i++) {[](#l11.259)
int val = (i%SCALE != 0) ? -1 : -123;[](#l11.260)
errn += verify("test_ci_scl: a1", i, a1.get(i), val);[](#l11.261)
}[](#l11.262)
test_vi_scl(a2, 123, -1);[](#l11.263)
for (int i=0; i<ARRLEN; i++) {[](#l11.264)
int val = (i%SCALE != 0) ? -1 : 123;[](#l11.265)
errn += verify("test_vi_scl: a2", i, a2.get(i), val);[](#l11.266)
}[](#l11.267)
test_cp_scl(a1, a2);[](#l11.268)
for (int i=0; i<ARRLEN; i++) {[](#l11.269)
int val = (i%SCALE != 0) ? -1 : 123;[](#l11.270)
errn += verify("test_cp_scl: a1", i, a1.get(i), val);[](#l11.271)
}[](#l11.272)
test_2ci_scl(a1, a2);[](#l11.273)
for (int i=0; i<ARRLEN; i++) {[](#l11.274)
if (i%SCALE != 0) {[](#l11.275)
errn += verify("test_2ci_scl: a1", i, a1.get(i), -1);[](#l11.276)
} else if (i*SCALE < ARRLEN) {[](#l11.277)
errn += verify("test_2ci_scl: a1", i*SCALE, a1.get(i*SCALE), -123);[](#l11.278)
}[](#l11.279)
if (i%SCALE != 0) {[](#l11.280)
errn += verify("test_2ci_scl: a2", i, a2.get(i), -1);[](#l11.281)
} else if (i*SCALE < ARRLEN) {[](#l11.282)
errn += verify("test_2ci_scl: a2", i*SCALE, a2.get(i*SCALE), -103);[](#l11.283)
}[](#l11.284)
}[](#l11.285)
test_2vi_scl(a1, a2, 123, 103);[](#l11.286)
for (int i=0; i<ARRLEN; i++) {[](#l11.287)
if (i%SCALE != 0) {[](#l11.288)
errn += verify("test_2vi_scl: a1", i, a1.get(i), -1);[](#l11.289)
} else if (i*SCALE < ARRLEN) {[](#l11.290)
errn += verify("test_2vi_scl: a1", i*SCALE, a1.get(i*SCALE), 123);[](#l11.291)
}[](#l11.292)
if (i%SCALE != 0) {[](#l11.293)
errn += verify("test_2vi_scl: a2", i, a2.get(i), -1);[](#l11.294)
} else if (i*SCALE < ARRLEN) {[](#l11.295)
errn += verify("test_2vi_scl: a2", i*SCALE, a2.get(i*SCALE), 103);[](#l11.296)
}[](#l11.297)
}[](#l11.298)
// Reset for 2 arrays with relative aligned offset[](#l11.299)
for (int i=0; i<ARRLEN; i++) {[](#l11.300)
a1.lazySet(i, -1);[](#l11.301)
a2.lazySet(i, -1);[](#l11.302)
}[](#l11.303)
test_vi(a2, 123, -1);[](#l11.304)
test_cp_alndst(a1, a2);[](#l11.305)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.306)
errn += verify("test_cp_alndst: a1", i, a1.get(i), -1);[](#l11.307)
}[](#l11.308)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l11.309)
errn += verify("test_cp_alndst: a1", i, a1.get(i), 123);[](#l11.310)
}[](#l11.311)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.312)
a1.lazySet(i, 123);[](#l11.313)
}[](#l11.314)
test_vi(a2, -123, 123);[](#l11.315)
test_cp_alnsrc(a1, a2);[](#l11.316)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l11.317)
errn += verify("test_cp_alnsrc: a1", i, a1.get(i), -123);[](#l11.318)
}[](#l11.319)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l11.320)
errn += verify("test_cp_alnsrc: a1", i, a1.get(i), 123);[](#l11.321)
}[](#l11.322)
for (int i=0; i<ARRLEN; i++) {[](#l11.323)
a1.lazySet(i, -1);[](#l11.324)
a2.lazySet(i, -1);[](#l11.325)
}[](#l11.326)
test_2ci_aln(a1, a2);[](#l11.327)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.328)
errn += verify("test_2ci_aln: a1", i, a1.get(i), -1);[](#l11.329)
}[](#l11.330)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l11.331)
errn += verify("test_2ci_aln: a1", i, a1.get(i), -123);[](#l11.332)
}[](#l11.333)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l11.334)
errn += verify("test_2ci_aln: a2", i, a2.get(i), -103);[](#l11.335)
}[](#l11.336)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l11.337)
errn += verify("test_2ci_aln: a2", i, a2.get(i), -1);[](#l11.338)
}[](#l11.339)
for (int i=0; i<ARRLEN; i++) {[](#l11.340)
a1.lazySet(i, -1);[](#l11.341)
a2.lazySet(i, -1);[](#l11.342)
}[](#l11.343)
test_2vi_aln(a1, a2, 123, 103);[](#l11.344)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l11.345)
errn += verify("test_2vi_aln: a1", i, a1.get(i), 123);[](#l11.346)
}[](#l11.347)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l11.348)
errn += verify("test_2vi_aln: a1", i, a1.get(i), -1);[](#l11.349)
}[](#l11.350)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.351)
errn += verify("test_2vi_aln: a2", i, a2.get(i), -1);[](#l11.352)
}[](#l11.353)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l11.354)
errn += verify("test_2vi_aln: a2", i, a2.get(i), 103);[](#l11.355)
}[](#l11.356)
// Reset for 2 arrays with relative unaligned offset[](#l11.358)
for (int i=0; i<ARRLEN; i++) {[](#l11.359)
a1.lazySet(i, -1);[](#l11.360)
a2.lazySet(i, -1);[](#l11.361)
}[](#l11.362)
test_vi(a2, 123, -1);[](#l11.363)
test_cp_unalndst(a1, a2);[](#l11.364)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l11.365)
errn += verify("test_cp_unalndst: a1", i, a1.get(i), -1);[](#l11.366)
}[](#l11.367)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.368)
errn += verify("test_cp_unalndst: a1", i, a1.get(i), 123);[](#l11.369)
}[](#l11.370)
test_vi(a2, -123, 123);[](#l11.371)
test_cp_unalnsrc(a1, a2);[](#l11.372)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l11.373)
errn += verify("test_cp_unalnsrc: a1", i, a1.get(i), -123);[](#l11.374)
}[](#l11.375)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.376)
errn += verify("test_cp_unalnsrc: a1", i, a1.get(i), 123);[](#l11.377)
}[](#l11.378)
for (int i=0; i<ARRLEN; i++) {[](#l11.379)
a1.lazySet(i, -1);[](#l11.380)
a2.lazySet(i, -1);[](#l11.381)
}[](#l11.382)
test_2ci_unaln(a1, a2);[](#l11.383)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l11.384)
errn += verify("test_2ci_unaln: a1", i, a1.get(i), -1);[](#l11.385)
}[](#l11.386)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.387)
errn += verify("test_2ci_unaln: a1", i, a1.get(i), -123);[](#l11.388)
}[](#l11.389)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l11.390)
errn += verify("test_2ci_unaln: a2", i, a2.get(i), -103);[](#l11.391)
}[](#l11.392)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.393)
errn += verify("test_2ci_unaln: a2", i, a2.get(i), -1);[](#l11.394)
}[](#l11.395)
for (int i=0; i<ARRLEN; i++) {[](#l11.396)
a1.lazySet(i, -1);[](#l11.397)
a2.lazySet(i, -1);[](#l11.398)
}[](#l11.399)
test_2vi_unaln(a1, a2, 123, 103);[](#l11.400)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l11.401)
errn += verify("test_2vi_unaln: a1", i, a1.get(i), 123);[](#l11.402)
}[](#l11.403)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.404)
errn += verify("test_2vi_unaln: a1", i, a1.get(i), -1);[](#l11.405)
}[](#l11.406)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l11.407)
errn += verify("test_2vi_unaln: a2", i, a2.get(i), -1);[](#l11.408)
}[](#l11.409)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.410)
errn += verify("test_2vi_unaln: a2", i, a2.get(i), 103);[](#l11.411)
}[](#l11.412)
// Reset for aligned overlap initialization[](#l11.414)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.415)
a1.lazySet(i, i);[](#l11.416)
}[](#l11.417)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l11.418)
a1.lazySet(i, -1);[](#l11.419)
}[](#l11.420)
test_cp_alndst(a1, a1);[](#l11.421)
for (int i=0; i<ARRLEN; i++) {[](#l11.422)
int v = i%ALIGN_OFF;[](#l11.423)
errn += verify("test_cp_alndst_overlap: a1", i, a1.get(i), v);[](#l11.424)
}[](#l11.425)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.426)
a1.lazySet((i+ALIGN_OFF), -1);[](#l11.427)
}[](#l11.428)
test_cp_alnsrc(a1, a1);[](#l11.429)
for (int i=0; i<ALIGN_OFF; i++) {[](#l11.430)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1.get(i), -1);[](#l11.431)
}[](#l11.432)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l11.433)
int v = i%ALIGN_OFF;[](#l11.434)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1.get(i), v);[](#l11.435)
}[](#l11.436)
for (int i=0; i<ARRLEN; i++) {[](#l11.437)
a1.lazySet(i, -1);[](#l11.438)
}[](#l11.439)
test_2ci_aln(a1, a1);[](#l11.440)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l11.441)
errn += verify("test_2ci_aln_overlap: a1", i, a1.get(i), -103);[](#l11.442)
}[](#l11.443)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l11.444)
errn += verify("test_2ci_aln_overlap: a1", i, a1.get(i), -123);[](#l11.445)
}[](#l11.446)
for (int i=0; i<ARRLEN; i++) {[](#l11.447)
a1.lazySet(i, -1);[](#l11.448)
}[](#l11.449)
test_2vi_aln(a1, a1, 123, 103);[](#l11.450)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l11.451)
errn += verify("test_2vi_aln_overlap: a1", i, a1.get(i), 123);[](#l11.452)
}[](#l11.453)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l11.454)
errn += verify("test_2vi_aln_overlap: a1", i, a1.get(i), 103);[](#l11.455)
}[](#l11.456)
// Reset for unaligned overlap initialization[](#l11.458)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l11.459)
a1.lazySet(i, i);[](#l11.460)
}[](#l11.461)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.462)
a1.lazySet(i, -1);[](#l11.463)
}[](#l11.464)
test_cp_unalndst(a1, a1);[](#l11.465)
for (int i=0; i<ARRLEN; i++) {[](#l11.466)
int v = i%UNALIGN_OFF;[](#l11.467)
errn += verify("test_cp_unalndst_overlap: a1", i, a1.get(i), v);[](#l11.468)
}[](#l11.469)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l11.470)
a1.lazySet((i+UNALIGN_OFF), -1);[](#l11.471)
}[](#l11.472)
test_cp_unalnsrc(a1, a1);[](#l11.473)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l11.474)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1.get(i), -1);[](#l11.475)
}[](#l11.476)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.477)
int v = i%UNALIGN_OFF;[](#l11.478)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1.get(i), v);[](#l11.479)
}[](#l11.480)
for (int i=0; i<ARRLEN; i++) {[](#l11.481)
a1.lazySet(i, -1);[](#l11.482)
}[](#l11.483)
test_2ci_unaln(a1, a1);[](#l11.484)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l11.485)
errn += verify("test_2ci_unaln_overlap: a1", i, a1.get(i), -103);[](#l11.486)
}[](#l11.487)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.488)
errn += verify("test_2ci_unaln_overlap: a1", i, a1.get(i), -123);[](#l11.489)
}[](#l11.490)
for (int i=0; i<ARRLEN; i++) {[](#l11.491)
a1.lazySet(i, -1);[](#l11.492)
}[](#l11.493)
test_2vi_unaln(a1, a1, 123, 103);[](#l11.494)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l11.495)
errn += verify("test_2vi_unaln_overlap: a1", i, a1.get(i), 123);[](#l11.496)
}[](#l11.497)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l11.498)
errn += verify("test_2vi_unaln_overlap: a1", i, a1.get(i), 103);[](#l11.499)
}[](#l11.500)
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.lazySet(i, -1);[](#l11.509)
a2.lazySet(i, -1);[](#l11.510)
- }
- System.out.println("Time");
- long start, end;
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l11.516)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi(a2, 123, -1);[](#l11.522)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp(a1, a2);[](#l11.528)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci(a1, a2);[](#l11.534)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi(a1, a2, 123, 103);[](#l11.540)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_neg(a1, 123);[](#l11.547)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_neg(a2, 123, 103);[](#l11.553)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_neg(a1, a2);[](#l11.559)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_neg(a1, a2);[](#l11.565)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_neg(a1, a2, 123, 103);[](#l11.571)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_oppos(a1, 123);[](#l11.578)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_oppos(a2, 123, 103);[](#l11.584)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_oppos(a1, a2);[](#l11.590)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_oppos(a1, a2);[](#l11.596)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_oppos(a1, a2, 123, 103);[](#l11.602)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_off(a1, 123);[](#l11.609)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_off(a2, 123, 103);[](#l11.615)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_off(a1, a2);[](#l11.621)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_off(a1, a2);[](#l11.627)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_off(a1, a2, 123, 103);[](#l11.633)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_inv(a1, OFFSET, 123);[](#l11.640)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_inv(a2, 123, OFFSET, 103);[](#l11.646)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_inv(a1, a2, OFFSET);[](#l11.652)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_inv(a1, a2, OFFSET);[](#l11.658)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l11.664)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_scl(a1, 123);[](#l11.671)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_scl(a2, 123, 103);[](#l11.677)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_scl(a1, a2);[](#l11.683)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_scl(a1, a2);[](#l11.689)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_scl(a1, a2, 123, 103);[](#l11.695)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alndst(a1, a2);[](#l11.702)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alnsrc(a1, a2);[](#l11.708)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_aln(a1, a2);[](#l11.714)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_aln(a1, a2, 123, 103);[](#l11.720)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalndst(a1, a2);[](#l11.727)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalnsrc(a1, a2);[](#l11.733)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_unaln(a1, a2);[](#l11.739)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_unaln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_unaln(a1, a2, 123, 103);[](#l11.745)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_unaln: " + (end - start));
- return errn;
- } +
- static void test_ci(AtomicIntegerArray a) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet(i, -123);[](#l11.755)
- }
- }
- static void test_vi(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet(i, b);[](#l11.760)
- }
- }
- static void test_cp(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet(i, b.get(i));[](#l11.765)
- }
- }
- static void test_2ci(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet(i, -123);[](#l11.770)
b.lazySet(i, -103);[](#l11.771)
- }
- }
- static void test_2vi(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet(i, c);[](#l11.776)
b.lazySet(i, d);[](#l11.777)
- }
- }
- static void test_ci_neg(AtomicIntegerArray a, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.lazySet(i,-123);[](#l11.782)
- }
- }
- static void test_vi_neg(AtomicIntegerArray a, int b, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.lazySet(i, b);[](#l11.787)
- }
- }
- static void test_cp_neg(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.lazySet(i, b.get(i));[](#l11.792)
- }
- }
- static void test_2ci_neg(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.lazySet(i, -123);[](#l11.797)
b.lazySet(i, -103);[](#l11.798)
- }
- }
- static void test_2vi_neg(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.lazySet(i, c);[](#l11.803)
b.lazySet(i, d);[](#l11.804)
- }
- }
- static void test_ci_oppos(AtomicIntegerArray a, int old) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet((limit-i), -123);[](#l11.810)
- }
- }
- static void test_vi_oppos(AtomicIntegerArray a, int b, int old) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
a.lazySet((limit-i), b);[](#l11.816)
- }
- }
- static void test_cp_oppos(AtomicIntegerArray a, AtomicIntegerArray b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet(i, b.get(limit-i));[](#l11.822)
- }
- }
- static void test_2ci_oppos(AtomicIntegerArray a, AtomicIntegerArray b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.lazySet((limit-i), -123);[](#l11.828)
b.lazySet(i, -103);[](#l11.829)
- }
- }
- static void test_2vi_oppos(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
a.lazySet(i, c);[](#l11.835)
b.lazySet((limit-i), d);[](#l11.836)
- }
- }
- static void test_ci_off(AtomicIntegerArray a, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.lazySet((i+OFFSET), -123);[](#l11.841)
- }
- }
- static void test_vi_off(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.lazySet((i+OFFSET), b);[](#l11.846)
- }
- }
- static void test_cp_off(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.lazySet((i+OFFSET), b.get(i+OFFSET));[](#l11.851)
- }
- }
- static void test_2ci_off(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.lazySet((i+OFFSET), -123);[](#l11.856)
b.lazySet((i+OFFSET), -103);[](#l11.857)
- }
- }
- static void test_2vi_off(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.lazySet((i+OFFSET), c);[](#l11.862)
b.lazySet((i+OFFSET), d);[](#l11.863)
- }
- }
- static void test_ci_inv(AtomicIntegerArray a, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.lazySet((i+k),-123);[](#l11.868)
- }
- }
- static void test_vi_inv(AtomicIntegerArray a, int b, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.lazySet((i+k), b);[](#l11.873)
- }
- }
- static void test_cp_inv(AtomicIntegerArray a, AtomicIntegerArray b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.lazySet((i+k), b.get(i+k));[](#l11.878)
- }
- }
- static void test_2ci_inv(AtomicIntegerArray a, AtomicIntegerArray b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.lazySet((i+k), -123);[](#l11.883)
b.lazySet((i+k), -103);[](#l11.884)
- }
- }
- static void test_2vi_inv(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.lazySet((i+k), c);[](#l11.889)
b.lazySet((i+k), d);[](#l11.890)
- }
- }
- static void test_ci_scl(AtomicIntegerArray a, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.lazySet((i*SCALE), -123);[](#l11.895)
- }
- }
- static void test_vi_scl(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.lazySet((i*SCALE), b);[](#l11.900)
- }
- }
- static void test_cp_scl(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.lazySet((i*SCALE), b.get(i*SCALE));[](#l11.905)
- }
- }
- static void test_2ci_scl(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.lazySet((i*SCALE), -123);[](#l11.910)
b.lazySet((i*SCALE), -103);[](#l11.911)
- }
- }
- static void test_2vi_scl(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.lazySet((i*SCALE), c);[](#l11.916)
b.lazySet((i*SCALE), d);[](#l11.917)
- }
- }
- static void test_cp_alndst(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.lazySet((i+ALIGN_OFF), b.get(i));[](#l11.922)
- }
- }
- static void test_cp_alnsrc(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.lazySet(i, b.get(i+ALIGN_OFF));[](#l11.927)
- }
- }
- static void test_2ci_aln(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.lazySet((i+ALIGN_OFF), -123);[](#l11.932)
b.lazySet(i, -103);[](#l11.933)
- }
- }
- static void test_2vi_aln(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.lazySet(i, c);[](#l11.938)
b.lazySet((i+ALIGN_OFF), d);[](#l11.939)
- }
- }
- static void test_cp_unalndst(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.lazySet((i+UNALIGN_OFF), b.get(i));[](#l11.944)
- }
- }
- static void test_cp_unalnsrc(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.lazySet(i, b.get(i+UNALIGN_OFF));[](#l11.949)
- }
- }
- static void test_2ci_unaln(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.lazySet((i+UNALIGN_OFF), -123);[](#l11.954)
b.lazySet(i, -103);[](#l11.955)
- }
- }
- static void test_2vi_unaln(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.lazySet(i, c);[](#l11.960)
b.lazySet((i+UNALIGN_OFF), d);[](#l11.961)
- }
- } +
- static int verify(String text, int i, int elem, int val) {
- if (elem != val) {
System.err.println(text + "[" + i + "] = " + elem + " != " + val);[](#l11.967)
return 1;[](#l11.968)
- }
- return 0;
- } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/compiler/8004867/TestIntAtomicVolatile.java Thu Feb 21 06:29:43 2013 -0800 @@ -0,0 +1,969 @@ +/*
- *
- *
- *
- *
- or visit www.oracle.com if you need additional information or have any
- *
- */ + +/**
- *
- */ + +import java.util.concurrent.atomic.AtomicIntegerArray; + +public class TestIntAtomicVolatile {
- private static final int ARRLEN = 97;
- private static final int ITERS = 11000;
- private static final int OFFSET = 3;
- private static final int SCALE = 2;
- private static final int ALIGN_OFF = 8;
- private static final int UNALIGN_OFF = 5; +
- public static void main(String args[]) {
- System.out.println("Testing Integer array atomic volatile operations");
- int errn = test(false);
- if (errn > 0) {
System.err.println("FAILED: " + errn + " errors");[](#l12.51)
System.exit(97);[](#l12.52)
- }
- System.out.println("PASSED");
- } +
- static int test(boolean test_only) {
- AtomicIntegerArray a1 = new AtomicIntegerArray(ARRLEN);
- AtomicIntegerArray a2 = new AtomicIntegerArray(ARRLEN);
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.set(i, -1);[](#l12.62)
a2.set(i, -1);[](#l12.63)
- }
- System.out.println("Warmup");
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l12.67)
test_vi(a2, 123, -1);[](#l12.68)
test_cp(a1, a2);[](#l12.69)
test_2ci(a1, a2);[](#l12.70)
test_2vi(a1, a2, 123, 103);[](#l12.71)
test_ci_neg(a1, 123);[](#l12.72)
test_vi_neg(a2, 123, 103);[](#l12.73)
test_cp_neg(a1, a2);[](#l12.74)
test_2ci_neg(a1, a2);[](#l12.75)
test_2vi_neg(a1, a2, 123, 103);[](#l12.76)
test_ci_oppos(a1, 123);[](#l12.77)
test_vi_oppos(a2, 123, 103);[](#l12.78)
test_cp_oppos(a1, a2);[](#l12.79)
test_2ci_oppos(a1, a2);[](#l12.80)
test_2vi_oppos(a1, a2, 123, 103);[](#l12.81)
test_ci_off(a1, 123);[](#l12.82)
test_vi_off(a2, 123, 103);[](#l12.83)
test_cp_off(a1, a2);[](#l12.84)
test_2ci_off(a1, a2);[](#l12.85)
test_2vi_off(a1, a2, 123, 103);[](#l12.86)
test_ci_inv(a1, OFFSET, 123);[](#l12.87)
test_vi_inv(a2, 123, OFFSET, 103);[](#l12.88)
test_cp_inv(a1, a2, OFFSET);[](#l12.89)
test_2ci_inv(a1, a2, OFFSET);[](#l12.90)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l12.91)
test_ci_scl(a1, 123);[](#l12.92)
test_vi_scl(a2, 123, 103);[](#l12.93)
test_cp_scl(a1, a2);[](#l12.94)
test_2ci_scl(a1, a2);[](#l12.95)
test_2vi_scl(a1, a2, 123, 103);[](#l12.96)
test_cp_alndst(a1, a2);[](#l12.97)
test_cp_alnsrc(a1, a2);[](#l12.98)
test_2ci_aln(a1, a2);[](#l12.99)
test_2vi_aln(a1, a2, 123, 103);[](#l12.100)
test_cp_unalndst(a1, a2);[](#l12.101)
test_cp_unalnsrc(a1, a2);[](#l12.102)
test_2ci_unaln(a1, a2);[](#l12.103)
test_2vi_unaln(a1, a2, 123, 103);[](#l12.104)
- }
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.set(i, -1);[](#l12.108)
a2.set(i, -1);[](#l12.109)
- }
- // Test and verify results
- System.out.println("Verification");
- int errn = 0;
- {
test_ci(a1);[](#l12.115)
for (int i=0; i<ARRLEN; i++) {[](#l12.116)
errn += verify("test_ci: a1", i, a1.get(i), -123);[](#l12.117)
}[](#l12.118)
test_vi(a2, 123, -1);[](#l12.119)
for (int i=0; i<ARRLEN; i++) {[](#l12.120)
errn += verify("test_vi: a2", i, a2.get(i), 123);[](#l12.121)
}[](#l12.122)
test_cp(a1, a2);[](#l12.123)
for (int i=0; i<ARRLEN; i++) {[](#l12.124)
errn += verify("test_cp: a1", i, a1.get(i), 123);[](#l12.125)
}[](#l12.126)
test_2ci(a1, a2);[](#l12.127)
for (int i=0; i<ARRLEN; i++) {[](#l12.128)
errn += verify("test_2ci: a1", i, a1.get(i), -123);[](#l12.129)
errn += verify("test_2ci: a2", i, a2.get(i), -103);[](#l12.130)
}[](#l12.131)
test_2vi(a1, a2, 123, 103);[](#l12.132)
for (int i=0; i<ARRLEN; i++) {[](#l12.133)
errn += verify("test_2vi: a1", i, a1.get(i), 123);[](#l12.134)
errn += verify("test_2vi: a2", i, a2.get(i), 103);[](#l12.135)
}[](#l12.136)
// Reset for negative stride[](#l12.137)
for (int i=0; i<ARRLEN; i++) {[](#l12.138)
a1.set(i, -1);[](#l12.139)
a2.set(i, -1);[](#l12.140)
}[](#l12.141)
test_ci_neg(a1, -1);[](#l12.142)
for (int i=0; i<ARRLEN; i++) {[](#l12.143)
errn += verify("test_ci_neg: a1", i, a1.get(i), -123);[](#l12.144)
}[](#l12.145)
test_vi_neg(a2, 123, -1);[](#l12.146)
for (int i=0; i<ARRLEN; i++) {[](#l12.147)
errn += verify("test_vi_neg: a2", i, a2.get(i), 123);[](#l12.148)
}[](#l12.149)
test_cp_neg(a1, a2);[](#l12.150)
for (int i=0; i<ARRLEN; i++) {[](#l12.151)
errn += verify("test_cp_neg: a1", i, a1.get(i), 123);[](#l12.152)
}[](#l12.153)
test_2ci_neg(a1, a2);[](#l12.154)
for (int i=0; i<ARRLEN; i++) {[](#l12.155)
errn += verify("test_2ci_neg: a1", i, a1.get(i), -123);[](#l12.156)
errn += verify("test_2ci_neg: a2", i, a2.get(i), -103);[](#l12.157)
}[](#l12.158)
test_2vi_neg(a1, a2, 123, 103);[](#l12.159)
for (int i=0; i<ARRLEN; i++) {[](#l12.160)
errn += verify("test_2vi_neg: a1", i, a1.get(i), 123);[](#l12.161)
errn += verify("test_2vi_neg: a2", i, a2.get(i), 103);[](#l12.162)
}[](#l12.163)
// Reset for opposite stride[](#l12.164)
for (int i=0; i<ARRLEN; i++) {[](#l12.165)
a1.set(i, -1);[](#l12.166)
a2.set(i, -1);[](#l12.167)
}[](#l12.168)
test_ci_oppos(a1, -1);[](#l12.169)
for (int i=0; i<ARRLEN; i++) {[](#l12.170)
errn += verify("test_ci_oppos: a1", i, a1.get(i), -123);[](#l12.171)
}[](#l12.172)
test_vi_oppos(a2, 123, -1);[](#l12.173)
for (int i=0; i<ARRLEN; i++) {[](#l12.174)
errn += verify("test_vi_oppos: a2", i, a2.get(i), 123);[](#l12.175)
}[](#l12.176)
test_cp_oppos(a1, a2);[](#l12.177)
for (int i=0; i<ARRLEN; i++) {[](#l12.178)
errn += verify("test_cp_oppos: a1", i, a1.get(i), 123);[](#l12.179)
}[](#l12.180)
test_2ci_oppos(a1, a2);[](#l12.181)
for (int i=0; i<ARRLEN; i++) {[](#l12.182)
errn += verify("test_2ci_oppos: a1", i, a1.get(i), -123);[](#l12.183)
errn += verify("test_2ci_oppos: a2", i, a2.get(i), -103);[](#l12.184)
}[](#l12.185)
test_2vi_oppos(a1, a2, 123, 103);[](#l12.186)
for (int i=0; i<ARRLEN; i++) {[](#l12.187)
errn += verify("test_2vi_oppos: a1", i, a1.get(i), 123);[](#l12.188)
errn += verify("test_2vi_oppos: a2", i, a2.get(i), 103);[](#l12.189)
}[](#l12.190)
// Reset for indexing with offset[](#l12.191)
for (int i=0; i<ARRLEN; i++) {[](#l12.192)
a1.set(i, -1);[](#l12.193)
a2.set(i, -1);[](#l12.194)
}[](#l12.195)
test_ci_off(a1, -1);[](#l12.196)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.197)
errn += verify("test_ci_off: a1", i, a1.get(i), -123);[](#l12.198)
}[](#l12.199)
test_vi_off(a2, 123, -1);[](#l12.200)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.201)
errn += verify("test_vi_off: a2", i, a2.get(i), 123);[](#l12.202)
}[](#l12.203)
test_cp_off(a1, a2);[](#l12.204)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.205)
errn += verify("test_cp_off: a1", i, a1.get(i), 123);[](#l12.206)
}[](#l12.207)
test_2ci_off(a1, a2);[](#l12.208)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.209)
errn += verify("test_2ci_off: a1", i, a1.get(i), -123);[](#l12.210)
errn += verify("test_2ci_off: a2", i, a2.get(i), -103);[](#l12.211)
}[](#l12.212)
test_2vi_off(a1, a2, 123, 103);[](#l12.213)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.214)
errn += verify("test_2vi_off: a1", i, a1.get(i), 123);[](#l12.215)
errn += verify("test_2vi_off: a2", i, a2.get(i), 103);[](#l12.216)
}[](#l12.217)
for (int i=0; i<OFFSET; i++) {[](#l12.218)
errn += verify("test_2vi_off: a1", i, a1.get(i), -1);[](#l12.219)
errn += verify("test_2vi_off: a2", i, a2.get(i), -1);[](#l12.220)
}[](#l12.221)
// Reset for indexing with invariant offset[](#l12.222)
for (int i=0; i<ARRLEN; i++) {[](#l12.223)
a1.set(i, -1);[](#l12.224)
a2.set(i, -1);[](#l12.225)
}[](#l12.226)
test_ci_inv(a1, OFFSET, -1);[](#l12.227)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.228)
errn += verify("test_ci_inv: a1", i, a1.get(i), -123);[](#l12.229)
}[](#l12.230)
test_vi_inv(a2, 123, OFFSET, -1);[](#l12.231)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.232)
errn += verify("test_vi_inv: a2", i, a2.get(i), 123);[](#l12.233)
}[](#l12.234)
test_cp_inv(a1, a2, OFFSET);[](#l12.235)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.236)
errn += verify("test_cp_inv: a1", i, a1.get(i), 123);[](#l12.237)
}[](#l12.238)
test_2ci_inv(a1, a2, OFFSET);[](#l12.239)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.240)
errn += verify("test_2ci_inv: a1", i, a1.get(i), -123);[](#l12.241)
errn += verify("test_2ci_inv: a2", i, a2.get(i), -103);[](#l12.242)
}[](#l12.243)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l12.244)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l12.245)
errn += verify("test_2vi_inv: a1", i, a1.get(i), 123);[](#l12.246)
errn += verify("test_2vi_inv: a2", i, a2.get(i), 103);[](#l12.247)
}[](#l12.248)
for (int i=0; i<OFFSET; i++) {[](#l12.249)
errn += verify("test_2vi_inv: a1", i, a1.get(i), -1);[](#l12.250)
errn += verify("test_2vi_inv: a2", i, a2.get(i), -1);[](#l12.251)
}[](#l12.252)
// Reset for indexing with scale[](#l12.253)
for (int i=0; i<ARRLEN; i++) {[](#l12.254)
a1.set(i, -1);[](#l12.255)
a2.set(i, -1);[](#l12.256)
}[](#l12.257)
test_ci_scl(a1, -1);[](#l12.258)
for (int i=0; i<ARRLEN; i++) {[](#l12.259)
int val = (i%SCALE != 0) ? -1 : -123;[](#l12.260)
errn += verify("test_ci_scl: a1", i, a1.get(i), val);[](#l12.261)
}[](#l12.262)
test_vi_scl(a2, 123, -1);[](#l12.263)
for (int i=0; i<ARRLEN; i++) {[](#l12.264)
int val = (i%SCALE != 0) ? -1 : 123;[](#l12.265)
errn += verify("test_vi_scl: a2", i, a2.get(i), val);[](#l12.266)
}[](#l12.267)
test_cp_scl(a1, a2);[](#l12.268)
for (int i=0; i<ARRLEN; i++) {[](#l12.269)
int val = (i%SCALE != 0) ? -1 : 123;[](#l12.270)
errn += verify("test_cp_scl: a1", i, a1.get(i), val);[](#l12.271)
}[](#l12.272)
test_2ci_scl(a1, a2);[](#l12.273)
for (int i=0; i<ARRLEN; i++) {[](#l12.274)
if (i%SCALE != 0) {[](#l12.275)
errn += verify("test_2ci_scl: a1", i, a1.get(i), -1);[](#l12.276)
} else if (i*SCALE < ARRLEN) {[](#l12.277)
errn += verify("test_2ci_scl: a1", i*SCALE, a1.get(i*SCALE), -123);[](#l12.278)
}[](#l12.279)
if (i%SCALE != 0) {[](#l12.280)
errn += verify("test_2ci_scl: a2", i, a2.get(i), -1);[](#l12.281)
} else if (i*SCALE < ARRLEN) {[](#l12.282)
errn += verify("test_2ci_scl: a2", i*SCALE, a2.get(i*SCALE), -103);[](#l12.283)
}[](#l12.284)
}[](#l12.285)
test_2vi_scl(a1, a2, 123, 103);[](#l12.286)
for (int i=0; i<ARRLEN; i++) {[](#l12.287)
if (i%SCALE != 0) {[](#l12.288)
errn += verify("test_2vi_scl: a1", i, a1.get(i), -1);[](#l12.289)
} else if (i*SCALE < ARRLEN) {[](#l12.290)
errn += verify("test_2vi_scl: a1", i*SCALE, a1.get(i*SCALE), 123);[](#l12.291)
}[](#l12.292)
if (i%SCALE != 0) {[](#l12.293)
errn += verify("test_2vi_scl: a2", i, a2.get(i), -1);[](#l12.294)
} else if (i*SCALE < ARRLEN) {[](#l12.295)
errn += verify("test_2vi_scl: a2", i*SCALE, a2.get(i*SCALE), 103);[](#l12.296)
}[](#l12.297)
}[](#l12.298)
// Reset for 2 arrays with relative aligned offset[](#l12.299)
for (int i=0; i<ARRLEN; i++) {[](#l12.300)
a1.set(i, -1);[](#l12.301)
a2.set(i, -1);[](#l12.302)
}[](#l12.303)
test_vi(a2, 123, -1);[](#l12.304)
test_cp_alndst(a1, a2);[](#l12.305)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.306)
errn += verify("test_cp_alndst: a1", i, a1.get(i), -1);[](#l12.307)
}[](#l12.308)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l12.309)
errn += verify("test_cp_alndst: a1", i, a1.get(i), 123);[](#l12.310)
}[](#l12.311)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.312)
a1.set(i, 123);[](#l12.313)
}[](#l12.314)
test_vi(a2, -123, 123);[](#l12.315)
test_cp_alnsrc(a1, a2);[](#l12.316)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l12.317)
errn += verify("test_cp_alnsrc: a1", i, a1.get(i), -123);[](#l12.318)
}[](#l12.319)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l12.320)
errn += verify("test_cp_alnsrc: a1", i, a1.get(i), 123);[](#l12.321)
}[](#l12.322)
for (int i=0; i<ARRLEN; i++) {[](#l12.323)
a1.set(i, -1);[](#l12.324)
a2.set(i, -1);[](#l12.325)
}[](#l12.326)
test_2ci_aln(a1, a2);[](#l12.327)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.328)
errn += verify("test_2ci_aln: a1", i, a1.get(i), -1);[](#l12.329)
}[](#l12.330)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l12.331)
errn += verify("test_2ci_aln: a1", i, a1.get(i), -123);[](#l12.332)
}[](#l12.333)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l12.334)
errn += verify("test_2ci_aln: a2", i, a2.get(i), -103);[](#l12.335)
}[](#l12.336)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l12.337)
errn += verify("test_2ci_aln: a2", i, a2.get(i), -1);[](#l12.338)
}[](#l12.339)
for (int i=0; i<ARRLEN; i++) {[](#l12.340)
a1.set(i, -1);[](#l12.341)
a2.set(i, -1);[](#l12.342)
}[](#l12.343)
test_2vi_aln(a1, a2, 123, 103);[](#l12.344)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l12.345)
errn += verify("test_2vi_aln: a1", i, a1.get(i), 123);[](#l12.346)
}[](#l12.347)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l12.348)
errn += verify("test_2vi_aln: a1", i, a1.get(i), -1);[](#l12.349)
}[](#l12.350)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.351)
errn += verify("test_2vi_aln: a2", i, a2.get(i), -1);[](#l12.352)
}[](#l12.353)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l12.354)
errn += verify("test_2vi_aln: a2", i, a2.get(i), 103);[](#l12.355)
}[](#l12.356)
// Reset for 2 arrays with relative unaligned offset[](#l12.358)
for (int i=0; i<ARRLEN; i++) {[](#l12.359)
a1.set(i, -1);[](#l12.360)
a2.set(i, -1);[](#l12.361)
}[](#l12.362)
test_vi(a2, 123, -1);[](#l12.363)
test_cp_unalndst(a1, a2);[](#l12.364)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l12.365)
errn += verify("test_cp_unalndst: a1", i, a1.get(i), -1);[](#l12.366)
}[](#l12.367)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.368)
errn += verify("test_cp_unalndst: a1", i, a1.get(i), 123);[](#l12.369)
}[](#l12.370)
test_vi(a2, -123, 123);[](#l12.371)
test_cp_unalnsrc(a1, a2);[](#l12.372)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l12.373)
errn += verify("test_cp_unalnsrc: a1", i, a1.get(i), -123);[](#l12.374)
}[](#l12.375)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.376)
errn += verify("test_cp_unalnsrc: a1", i, a1.get(i), 123);[](#l12.377)
}[](#l12.378)
for (int i=0; i<ARRLEN; i++) {[](#l12.379)
a1.set(i, -1);[](#l12.380)
a2.set(i, -1);[](#l12.381)
}[](#l12.382)
test_2ci_unaln(a1, a2);[](#l12.383)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l12.384)
errn += verify("test_2ci_unaln: a1", i, a1.get(i), -1);[](#l12.385)
}[](#l12.386)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.387)
errn += verify("test_2ci_unaln: a1", i, a1.get(i), -123);[](#l12.388)
}[](#l12.389)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l12.390)
errn += verify("test_2ci_unaln: a2", i, a2.get(i), -103);[](#l12.391)
}[](#l12.392)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.393)
errn += verify("test_2ci_unaln: a2", i, a2.get(i), -1);[](#l12.394)
}[](#l12.395)
for (int i=0; i<ARRLEN; i++) {[](#l12.396)
a1.set(i, -1);[](#l12.397)
a2.set(i, -1);[](#l12.398)
}[](#l12.399)
test_2vi_unaln(a1, a2, 123, 103);[](#l12.400)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l12.401)
errn += verify("test_2vi_unaln: a1", i, a1.get(i), 123);[](#l12.402)
}[](#l12.403)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.404)
errn += verify("test_2vi_unaln: a1", i, a1.get(i), -1);[](#l12.405)
}[](#l12.406)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l12.407)
errn += verify("test_2vi_unaln: a2", i, a2.get(i), -1);[](#l12.408)
}[](#l12.409)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.410)
errn += verify("test_2vi_unaln: a2", i, a2.get(i), 103);[](#l12.411)
}[](#l12.412)
// Reset for aligned overlap initialization[](#l12.414)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.415)
a1.set(i, i);[](#l12.416)
}[](#l12.417)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l12.418)
a1.set(i, -1);[](#l12.419)
}[](#l12.420)
test_cp_alndst(a1, a1);[](#l12.421)
for (int i=0; i<ARRLEN; i++) {[](#l12.422)
int v = i%ALIGN_OFF;[](#l12.423)
errn += verify("test_cp_alndst_overlap: a1", i, a1.get(i), v);[](#l12.424)
}[](#l12.425)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.426)
a1.set((i+ALIGN_OFF), -1);[](#l12.427)
}[](#l12.428)
test_cp_alnsrc(a1, a1);[](#l12.429)
for (int i=0; i<ALIGN_OFF; i++) {[](#l12.430)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1.get(i), -1);[](#l12.431)
}[](#l12.432)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l12.433)
int v = i%ALIGN_OFF;[](#l12.434)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1.get(i), v);[](#l12.435)
}[](#l12.436)
for (int i=0; i<ARRLEN; i++) {[](#l12.437)
a1.set(i, -1);[](#l12.438)
}[](#l12.439)
test_2ci_aln(a1, a1);[](#l12.440)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l12.441)
errn += verify("test_2ci_aln_overlap: a1", i, a1.get(i), -103);[](#l12.442)
}[](#l12.443)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l12.444)
errn += verify("test_2ci_aln_overlap: a1", i, a1.get(i), -123);[](#l12.445)
}[](#l12.446)
for (int i=0; i<ARRLEN; i++) {[](#l12.447)
a1.set(i, -1);[](#l12.448)
}[](#l12.449)
test_2vi_aln(a1, a1, 123, 103);[](#l12.450)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l12.451)
errn += verify("test_2vi_aln_overlap: a1", i, a1.get(i), 123);[](#l12.452)
}[](#l12.453)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l12.454)
errn += verify("test_2vi_aln_overlap: a1", i, a1.get(i), 103);[](#l12.455)
}[](#l12.456)
// Reset for unaligned overlap initialization[](#l12.458)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l12.459)
a1.set(i, i);[](#l12.460)
}[](#l12.461)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.462)
a1.set(i, -1);[](#l12.463)
}[](#l12.464)
test_cp_unalndst(a1, a1);[](#l12.465)
for (int i=0; i<ARRLEN; i++) {[](#l12.466)
int v = i%UNALIGN_OFF;[](#l12.467)
errn += verify("test_cp_unalndst_overlap: a1", i, a1.get(i), v);[](#l12.468)
}[](#l12.469)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l12.470)
a1.set((i+UNALIGN_OFF), -1);[](#l12.471)
}[](#l12.472)
test_cp_unalnsrc(a1, a1);[](#l12.473)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l12.474)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1.get(i), -1);[](#l12.475)
}[](#l12.476)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.477)
int v = i%UNALIGN_OFF;[](#l12.478)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1.get(i), v);[](#l12.479)
}[](#l12.480)
for (int i=0; i<ARRLEN; i++) {[](#l12.481)
a1.set(i, -1);[](#l12.482)
}[](#l12.483)
test_2ci_unaln(a1, a1);[](#l12.484)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l12.485)
errn += verify("test_2ci_unaln_overlap: a1", i, a1.get(i), -103);[](#l12.486)
}[](#l12.487)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.488)
errn += verify("test_2ci_unaln_overlap: a1", i, a1.get(i), -123);[](#l12.489)
}[](#l12.490)
for (int i=0; i<ARRLEN; i++) {[](#l12.491)
a1.set(i, -1);[](#l12.492)
}[](#l12.493)
test_2vi_unaln(a1, a1, 123, 103);[](#l12.494)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l12.495)
errn += verify("test_2vi_unaln_overlap: a1", i, a1.get(i), 123);[](#l12.496)
}[](#l12.497)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l12.498)
errn += verify("test_2vi_unaln_overlap: a1", i, a1.get(i), 103);[](#l12.499)
}[](#l12.500)
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1.set(i, -1);[](#l12.509)
a2.set(i, -1);[](#l12.510)
- }
- System.out.println("Time");
- long start, end;
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l12.516)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi(a2, 123, -1);[](#l12.522)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp(a1, a2);[](#l12.528)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci(a1, a2);[](#l12.534)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi(a1, a2, 123, 103);[](#l12.540)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_neg(a1, 123);[](#l12.547)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_neg(a2, 123, 103);[](#l12.553)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_neg(a1, a2);[](#l12.559)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_neg(a1, a2);[](#l12.565)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_neg(a1, a2, 123, 103);[](#l12.571)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_oppos(a1, 123);[](#l12.578)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_oppos(a2, 123, 103);[](#l12.584)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_oppos(a1, a2);[](#l12.590)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_oppos(a1, a2);[](#l12.596)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_oppos(a1, a2, 123, 103);[](#l12.602)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_off(a1, 123);[](#l12.609)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_off(a2, 123, 103);[](#l12.615)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_off(a1, a2);[](#l12.621)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_off(a1, a2);[](#l12.627)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_off(a1, a2, 123, 103);[](#l12.633)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_inv(a1, OFFSET, 123);[](#l12.640)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_inv(a2, 123, OFFSET, 103);[](#l12.646)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_inv(a1, a2, OFFSET);[](#l12.652)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_inv(a1, a2, OFFSET);[](#l12.658)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l12.664)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_scl(a1, 123);[](#l12.671)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_scl(a2, 123, 103);[](#l12.677)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_scl(a1, a2);[](#l12.683)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_scl(a1, a2);[](#l12.689)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_scl(a1, a2, 123, 103);[](#l12.695)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alndst(a1, a2);[](#l12.702)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alnsrc(a1, a2);[](#l12.708)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_aln(a1, a2);[](#l12.714)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_aln(a1, a2, 123, 103);[](#l12.720)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalndst(a1, a2);[](#l12.727)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalnsrc(a1, a2);[](#l12.733)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_unaln(a1, a2);[](#l12.739)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_unaln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_unaln(a1, a2, 123, 103);[](#l12.745)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_unaln: " + (end - start));
- return errn;
- } +
- static void test_ci(AtomicIntegerArray a) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.set(i, -123);[](#l12.755)
- }
- }
- static void test_vi(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.set(i, b);[](#l12.760)
- }
- }
- static void test_cp(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.set(i, b.get(i));[](#l12.765)
- }
- }
- static void test_2ci(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.set(i, -123);[](#l12.770)
b.set(i, -103);[](#l12.771)
- }
- }
- static void test_2vi(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN; i+=1) {
a.set(i, c);[](#l12.776)
b.set(i, d);[](#l12.777)
- }
- }
- static void test_ci_neg(AtomicIntegerArray a, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.set(i,-123);[](#l12.782)
- }
- }
- static void test_vi_neg(AtomicIntegerArray a, int b, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.set(i, b);[](#l12.787)
- }
- }
- static void test_cp_neg(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.set(i, b.get(i));[](#l12.792)
- }
- }
- static void test_2ci_neg(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.set(i, -123);[](#l12.797)
b.set(i, -103);[](#l12.798)
- }
- }
- static void test_2vi_neg(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
a.set(i, c);[](#l12.803)
b.set(i, d);[](#l12.804)
- }
- }
- static void test_ci_oppos(AtomicIntegerArray a, int old) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.set((limit-i), -123);[](#l12.810)
- }
- }
- static void test_vi_oppos(AtomicIntegerArray a, int b, int old) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
a.set((limit-i), b);[](#l12.816)
- }
- }
- static void test_cp_oppos(AtomicIntegerArray a, AtomicIntegerArray b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.set(i, b.get(limit-i));[](#l12.822)
- }
- }
- static void test_2ci_oppos(AtomicIntegerArray a, AtomicIntegerArray b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
a.set((limit-i), -123);[](#l12.828)
b.set(i, -103);[](#l12.829)
- }
- }
- static void test_2vi_oppos(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
a.set(i, c);[](#l12.835)
b.set((limit-i), d);[](#l12.836)
- }
- }
- static void test_ci_off(AtomicIntegerArray a, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.set((i+OFFSET), -123);[](#l12.841)
- }
- }
- static void test_vi_off(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.set((i+OFFSET), b);[](#l12.846)
- }
- }
- static void test_cp_off(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.set((i+OFFSET), b.get(i+OFFSET));[](#l12.851)
- }
- }
- static void test_2ci_off(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.set((i+OFFSET), -123);[](#l12.856)
b.set((i+OFFSET), -103);[](#l12.857)
- }
- }
- static void test_2vi_off(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
a.set((i+OFFSET), c);[](#l12.862)
b.set((i+OFFSET), d);[](#l12.863)
- }
- }
- static void test_ci_inv(AtomicIntegerArray a, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.set((i+k),-123);[](#l12.868)
- }
- }
- static void test_vi_inv(AtomicIntegerArray a, int b, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.set((i+k), b);[](#l12.873)
- }
- }
- static void test_cp_inv(AtomicIntegerArray a, AtomicIntegerArray b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.set((i+k), b.get(i+k));[](#l12.878)
- }
- }
- static void test_2ci_inv(AtomicIntegerArray a, AtomicIntegerArray b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.set((i+k), -123);[](#l12.883)
b.set((i+k), -103);[](#l12.884)
- }
- }
- static void test_2vi_inv(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
a.set((i+k), c);[](#l12.889)
b.set((i+k), d);[](#l12.890)
- }
- }
- static void test_ci_scl(AtomicIntegerArray a, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.set((i*SCALE), -123);[](#l12.895)
- }
- }
- static void test_vi_scl(AtomicIntegerArray a, int b, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.set((i*SCALE), b);[](#l12.900)
- }
- }
- static void test_cp_scl(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.set((i*SCALE), b.get(i*SCALE));[](#l12.905)
- }
- }
- static void test_2ci_scl(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.set((i*SCALE), -123);[](#l12.910)
b.set((i*SCALE), -103);[](#l12.911)
- }
- }
- static void test_2vi_scl(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
a.set((i*SCALE), c);[](#l12.916)
b.set((i*SCALE), d);[](#l12.917)
- }
- }
- static void test_cp_alndst(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.set((i+ALIGN_OFF), b.get(i));[](#l12.922)
- }
- }
- static void test_cp_alnsrc(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.set(i, b.get(i+ALIGN_OFF));[](#l12.927)
- }
- }
- static void test_2ci_aln(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.set((i+ALIGN_OFF), -123);[](#l12.932)
b.set(i, -103);[](#l12.933)
- }
- }
- static void test_2vi_aln(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
a.set(i, c);[](#l12.938)
b.set((i+ALIGN_OFF), d);[](#l12.939)
- }
- }
- static void test_cp_unalndst(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.set((i+UNALIGN_OFF), b.get(i));[](#l12.944)
- }
- }
- static void test_cp_unalnsrc(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.set(i, b.get(i+UNALIGN_OFF));[](#l12.949)
- }
- }
- static void test_2ci_unaln(AtomicIntegerArray a, AtomicIntegerArray b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.set((i+UNALIGN_OFF), -123);[](#l12.954)
b.set(i, -103);[](#l12.955)
- }
- }
- static void test_2vi_unaln(AtomicIntegerArray a, AtomicIntegerArray b, int c, int d) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
a.set(i, c);[](#l12.960)
b.set((i+UNALIGN_OFF), d);[](#l12.961)
- }
- } +
- static int verify(String text, int i, int elem, int val) {
- if (elem != val) {
System.err.println(text + "[" + i + "] = " + elem + " != " + val);[](#l12.967)
return 1;[](#l12.968)
- }
- return 0;
- } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/compiler/8004867/TestIntUnsafeCAS.java Thu Feb 21 06:29:43 2013 -0800 @@ -0,0 +1,998 @@ +/*
- *
- *
- *
- *
- or visit www.oracle.com if you need additional information or have any
- *
- */ + +/**
- *
- / + +import sun.misc.Unsafe; +import java.lang.reflect.; + +public class TestIntUnsafeCAS {
- private static final int ARRLEN = 97;
- private static final int ITERS = 11000;
- private static final int OFFSET = 3;
- private static final int SCALE = 2;
- private static final int ALIGN_OFF = 8;
- private static final int UNALIGN_OFF = 5; +
- private static final Unsafe unsafe;
- private static final int BASE;
- static {
- try {
Class c = TestIntUnsafeCAS.class.getClassLoader().loadClass("sun.misc.Unsafe");[](#l13.52)
Field f = c.getDeclaredField("theUnsafe");[](#l13.53)
f.setAccessible(true);[](#l13.54)
unsafe = (Unsafe)f.get(c);[](#l13.55)
BASE = unsafe.arrayBaseOffset(int[].class);[](#l13.56)
- } catch (Exception e) {
InternalError err = new InternalError();[](#l13.58)
err.initCause(e);[](#l13.59)
throw err;[](#l13.60)
- }
- } +
- public static void main(String args[]) {
- System.out.println("Testing Integer array unsafe CAS operations");
- int errn = test(false);
- if (errn > 0) {
System.err.println("FAILED: " + errn + " errors");[](#l13.68)
System.exit(97);[](#l13.69)
- }
- System.out.println("PASSED");
- } +
- static int test(boolean test_only) {
- int[] a1 = new int[ARRLEN];
- int[] a2 = new int[ARRLEN];
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l13.79)
a2[i] = -1;[](#l13.80)
- }
- System.out.println("Warmup");
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l13.84)
test_vi(a2, 123, -1);[](#l13.85)
test_cp(a1, a2);[](#l13.86)
test_2ci(a1, a2);[](#l13.87)
test_2vi(a1, a2, 123, 103);[](#l13.88)
test_ci_neg(a1, 123);[](#l13.89)
test_vi_neg(a2, 123, 103);[](#l13.90)
test_cp_neg(a1, a2);[](#l13.91)
test_2ci_neg(a1, a2);[](#l13.92)
test_2vi_neg(a1, a2, 123, 103);[](#l13.93)
test_ci_oppos(a1, 123);[](#l13.94)
test_vi_oppos(a2, 123, 103);[](#l13.95)
test_cp_oppos(a1, a2);[](#l13.96)
test_2ci_oppos(a1, a2);[](#l13.97)
test_2vi_oppos(a1, a2, 123, 103);[](#l13.98)
test_ci_off(a1, 123);[](#l13.99)
test_vi_off(a2, 123, 103);[](#l13.100)
test_cp_off(a1, a2);[](#l13.101)
test_2ci_off(a1, a2);[](#l13.102)
test_2vi_off(a1, a2, 123, 103);[](#l13.103)
test_ci_inv(a1, OFFSET, 123);[](#l13.104)
test_vi_inv(a2, 123, OFFSET, 103);[](#l13.105)
test_cp_inv(a1, a2, OFFSET);[](#l13.106)
test_2ci_inv(a1, a2, OFFSET);[](#l13.107)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l13.108)
test_ci_scl(a1, 123);[](#l13.109)
test_vi_scl(a2, 123, 103);[](#l13.110)
test_cp_scl(a1, a2);[](#l13.111)
test_2ci_scl(a1, a2);[](#l13.112)
test_2vi_scl(a1, a2, 123, 103);[](#l13.113)
test_cp_alndst(a1, a2);[](#l13.114)
test_cp_alnsrc(a1, a2);[](#l13.115)
test_2ci_aln(a1, a2);[](#l13.116)
test_2vi_aln(a1, a2, 123, 103);[](#l13.117)
test_cp_unalndst(a1, a2);[](#l13.118)
test_cp_unalnsrc(a1, a2);[](#l13.119)
test_2ci_unaln(a1, a2);[](#l13.120)
test_2vi_unaln(a1, a2, 123, 103);[](#l13.121)
- }
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l13.125)
a2[i] = -1;[](#l13.126)
- }
- // Test and verify results
- System.out.println("Verification");
- int errn = 0;
- {
test_ci(a1);[](#l13.132)
for (int i=0; i<ARRLEN; i++) {[](#l13.133)
errn += verify("test_ci: a1", i, a1[i], -123);[](#l13.134)
}[](#l13.135)
test_vi(a2, 123, -1);[](#l13.136)
for (int i=0; i<ARRLEN; i++) {[](#l13.137)
errn += verify("test_vi: a2", i, a2[i], 123);[](#l13.138)
}[](#l13.139)
test_cp(a1, a2);[](#l13.140)
for (int i=0; i<ARRLEN; i++) {[](#l13.141)
errn += verify("test_cp: a1", i, a1[i], 123);[](#l13.142)
}[](#l13.143)
test_2ci(a1, a2);[](#l13.144)
for (int i=0; i<ARRLEN; i++) {[](#l13.145)
errn += verify("test_2ci: a1", i, a1[i], -123);[](#l13.146)
errn += verify("test_2ci: a2", i, a2[i], -103);[](#l13.147)
}[](#l13.148)
test_2vi(a1, a2, 123, 103);[](#l13.149)
for (int i=0; i<ARRLEN; i++) {[](#l13.150)
errn += verify("test_2vi: a1", i, a1[i], 123);[](#l13.151)
errn += verify("test_2vi: a2", i, a2[i], 103);[](#l13.152)
}[](#l13.153)
// Reset for negative stride[](#l13.154)
for (int i=0; i<ARRLEN; i++) {[](#l13.155)
a1[i] = -1;[](#l13.156)
a2[i] = -1;[](#l13.157)
}[](#l13.158)
test_ci_neg(a1, -1);[](#l13.159)
for (int i=0; i<ARRLEN; i++) {[](#l13.160)
errn += verify("test_ci_neg: a1", i, a1[i], -123);[](#l13.161)
}[](#l13.162)
test_vi_neg(a2, 123, -1);[](#l13.163)
for (int i=0; i<ARRLEN; i++) {[](#l13.164)
errn += verify("test_vi_neg: a2", i, a2[i], 123);[](#l13.165)
}[](#l13.166)
test_cp_neg(a1, a2);[](#l13.167)
for (int i=0; i<ARRLEN; i++) {[](#l13.168)
errn += verify("test_cp_neg: a1", i, a1[i], 123);[](#l13.169)
}[](#l13.170)
test_2ci_neg(a1, a2);[](#l13.171)
for (int i=0; i<ARRLEN; i++) {[](#l13.172)
errn += verify("test_2ci_neg: a1", i, a1[i], -123);[](#l13.173)
errn += verify("test_2ci_neg: a2", i, a2[i], -103);[](#l13.174)
}[](#l13.175)
test_2vi_neg(a1, a2, 123, 103);[](#l13.176)
for (int i=0; i<ARRLEN; i++) {[](#l13.177)
errn += verify("test_2vi_neg: a1", i, a1[i], 123);[](#l13.178)
errn += verify("test_2vi_neg: a2", i, a2[i], 103);[](#l13.179)
}[](#l13.180)
// Reset for opposite stride[](#l13.181)
for (int i=0; i<ARRLEN; i++) {[](#l13.182)
a1[i] = -1;[](#l13.183)
a2[i] = -1;[](#l13.184)
}[](#l13.185)
test_ci_oppos(a1, -1);[](#l13.186)
for (int i=0; i<ARRLEN; i++) {[](#l13.187)
errn += verify("test_ci_oppos: a1", i, a1[i], -123);[](#l13.188)
}[](#l13.189)
test_vi_oppos(a2, 123, -1);[](#l13.190)
for (int i=0; i<ARRLEN; i++) {[](#l13.191)
errn += verify("test_vi_oppos: a2", i, a2[i], 123);[](#l13.192)
}[](#l13.193)
test_cp_oppos(a1, a2);[](#l13.194)
for (int i=0; i<ARRLEN; i++) {[](#l13.195)
errn += verify("test_cp_oppos: a1", i, a1[i], 123);[](#l13.196)
}[](#l13.197)
test_2ci_oppos(a1, a2);[](#l13.198)
for (int i=0; i<ARRLEN; i++) {[](#l13.199)
errn += verify("test_2ci_oppos: a1", i, a1[i], -123);[](#l13.200)
errn += verify("test_2ci_oppos: a2", i, a2[i], -103);[](#l13.201)
}[](#l13.202)
test_2vi_oppos(a1, a2, 123, 103);[](#l13.203)
for (int i=0; i<ARRLEN; i++) {[](#l13.204)
errn += verify("test_2vi_oppos: a1", i, a1[i], 123);[](#l13.205)
errn += verify("test_2vi_oppos: a2", i, a2[i], 103);[](#l13.206)
}[](#l13.207)
// Reset for indexing with offset[](#l13.208)
for (int i=0; i<ARRLEN; i++) {[](#l13.209)
a1[i] = -1;[](#l13.210)
a2[i] = -1;[](#l13.211)
}[](#l13.212)
test_ci_off(a1, -1);[](#l13.213)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.214)
errn += verify("test_ci_off: a1", i, a1[i], -123);[](#l13.215)
}[](#l13.216)
test_vi_off(a2, 123, -1);[](#l13.217)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.218)
errn += verify("test_vi_off: a2", i, a2[i], 123);[](#l13.219)
}[](#l13.220)
test_cp_off(a1, a2);[](#l13.221)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.222)
errn += verify("test_cp_off: a1", i, a1[i], 123);[](#l13.223)
}[](#l13.224)
test_2ci_off(a1, a2);[](#l13.225)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.226)
errn += verify("test_2ci_off: a1", i, a1[i], -123);[](#l13.227)
errn += verify("test_2ci_off: a2", i, a2[i], -103);[](#l13.228)
}[](#l13.229)
test_2vi_off(a1, a2, 123, 103);[](#l13.230)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.231)
errn += verify("test_2vi_off: a1", i, a1[i], 123);[](#l13.232)
errn += verify("test_2vi_off: a2", i, a2[i], 103);[](#l13.233)
}[](#l13.234)
for (int i=0; i<OFFSET; i++) {[](#l13.235)
errn += verify("test_2vi_off: a1", i, a1[i], -1);[](#l13.236)
errn += verify("test_2vi_off: a2", i, a2[i], -1);[](#l13.237)
}[](#l13.238)
// Reset for indexing with invariant offset[](#l13.239)
for (int i=0; i<ARRLEN; i++) {[](#l13.240)
a1[i] = -1;[](#l13.241)
a2[i] = -1;[](#l13.242)
}[](#l13.243)
test_ci_inv(a1, OFFSET, -1);[](#l13.244)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.245)
errn += verify("test_ci_inv: a1", i, a1[i], -123);[](#l13.246)
}[](#l13.247)
test_vi_inv(a2, 123, OFFSET, -1);[](#l13.248)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.249)
errn += verify("test_vi_inv: a2", i, a2[i], 123);[](#l13.250)
}[](#l13.251)
test_cp_inv(a1, a2, OFFSET);[](#l13.252)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.253)
errn += verify("test_cp_inv: a1", i, a1[i], 123);[](#l13.254)
}[](#l13.255)
test_2ci_inv(a1, a2, OFFSET);[](#l13.256)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.257)
errn += verify("test_2ci_inv: a1", i, a1[i], -123);[](#l13.258)
errn += verify("test_2ci_inv: a2", i, a2[i], -103);[](#l13.259)
}[](#l13.260)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l13.261)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l13.262)
errn += verify("test_2vi_inv: a1", i, a1[i], 123);[](#l13.263)
errn += verify("test_2vi_inv: a2", i, a2[i], 103);[](#l13.264)
}[](#l13.265)
for (int i=0; i<OFFSET; i++) {[](#l13.266)
errn += verify("test_2vi_inv: a1", i, a1[i], -1);[](#l13.267)
errn += verify("test_2vi_inv: a2", i, a2[i], -1);[](#l13.268)
}[](#l13.269)
// Reset for indexing with scale[](#l13.270)
for (int i=0; i<ARRLEN; i++) {[](#l13.271)
a1[i] = -1;[](#l13.272)
a2[i] = -1;[](#l13.273)
}[](#l13.274)
test_ci_scl(a1, -1);[](#l13.275)
for (int i=0; i<ARRLEN; i++) {[](#l13.276)
int val = (i%SCALE != 0) ? -1 : -123;[](#l13.277)
errn += verify("test_ci_scl: a1", i, a1[i], val);[](#l13.278)
}[](#l13.279)
test_vi_scl(a2, 123, -1);[](#l13.280)
for (int i=0; i<ARRLEN; i++) {[](#l13.281)
int val = (i%SCALE != 0) ? -1 : 123;[](#l13.282)
errn += verify("test_vi_scl: a2", i, a2[i], val);[](#l13.283)
}[](#l13.284)
test_cp_scl(a1, a2);[](#l13.285)
for (int i=0; i<ARRLEN; i++) {[](#l13.286)
int val = (i%SCALE != 0) ? -1 : 123;[](#l13.287)
errn += verify("test_cp_scl: a1", i, a1[i], val);[](#l13.288)
}[](#l13.289)
test_2ci_scl(a1, a2);[](#l13.290)
for (int i=0; i<ARRLEN; i++) {[](#l13.291)
if (i%SCALE != 0) {[](#l13.292)
errn += verify("test_2ci_scl: a1", i, a1[i], -1);[](#l13.293)
} else if (i*SCALE < ARRLEN) {[](#l13.294)
errn += verify("test_2ci_scl: a1", i*SCALE, a1[i*SCALE], -123);[](#l13.295)
}[](#l13.296)
if (i%SCALE != 0) {[](#l13.297)
errn += verify("test_2ci_scl: a2", i, a2[i], -1);[](#l13.298)
} else if (i*SCALE < ARRLEN) {[](#l13.299)
errn += verify("test_2ci_scl: a2", i*SCALE, a2[i*SCALE], -103);[](#l13.300)
}[](#l13.301)
}[](#l13.302)
test_2vi_scl(a1, a2, 123, 103);[](#l13.303)
for (int i=0; i<ARRLEN; i++) {[](#l13.304)
if (i%SCALE != 0) {[](#l13.305)
errn += verify("test_2vi_scl: a1", i, a1[i], -1);[](#l13.306)
} else if (i*SCALE < ARRLEN) {[](#l13.307)
errn += verify("test_2vi_scl: a1", i*SCALE, a1[i*SCALE], 123);[](#l13.308)
}[](#l13.309)
if (i%SCALE != 0) {[](#l13.310)
errn += verify("test_2vi_scl: a2", i, a2[i], -1);[](#l13.311)
} else if (i*SCALE < ARRLEN) {[](#l13.312)
errn += verify("test_2vi_scl: a2", i*SCALE, a2[i*SCALE], 103);[](#l13.313)
}[](#l13.314)
}[](#l13.315)
// Reset for 2 arrays with relative aligned offset[](#l13.316)
for (int i=0; i<ARRLEN; i++) {[](#l13.317)
a1[i] = -1;[](#l13.318)
a2[i] = -1;[](#l13.319)
}[](#l13.320)
test_vi(a2, 123, -1);[](#l13.321)
test_cp_alndst(a1, a2);[](#l13.322)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.323)
errn += verify("test_cp_alndst: a1", i, a1[i], -1);[](#l13.324)
}[](#l13.325)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l13.326)
errn += verify("test_cp_alndst: a1", i, a1[i], 123);[](#l13.327)
}[](#l13.328)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.329)
a1[i] = 123;[](#l13.330)
}[](#l13.331)
test_vi(a2, -123, 123);[](#l13.332)
test_cp_alnsrc(a1, a2);[](#l13.333)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l13.334)
errn += verify("test_cp_alnsrc: a1", i, a1[i], -123);[](#l13.335)
}[](#l13.336)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l13.337)
errn += verify("test_cp_alnsrc: a1", i, a1[i], 123);[](#l13.338)
}[](#l13.339)
for (int i=0; i<ARRLEN; i++) {[](#l13.340)
a1[i] = -1;[](#l13.341)
a2[i] = -1;[](#l13.342)
}[](#l13.343)
test_2ci_aln(a1, a2);[](#l13.344)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.345)
errn += verify("test_2ci_aln: a1", i, a1[i], -1);[](#l13.346)
}[](#l13.347)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l13.348)
errn += verify("test_2ci_aln: a1", i, a1[i], -123);[](#l13.349)
}[](#l13.350)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l13.351)
errn += verify("test_2ci_aln: a2", i, a2[i], -103);[](#l13.352)
}[](#l13.353)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l13.354)
errn += verify("test_2ci_aln: a2", i, a2[i], -1);[](#l13.355)
}[](#l13.356)
for (int i=0; i<ARRLEN; i++) {[](#l13.357)
a1[i] = -1;[](#l13.358)
a2[i] = -1;[](#l13.359)
}[](#l13.360)
test_2vi_aln(a1, a2, 123, 103);[](#l13.361)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l13.362)
errn += verify("test_2vi_aln: a1", i, a1[i], 123);[](#l13.363)
}[](#l13.364)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l13.365)
errn += verify("test_2vi_aln: a1", i, a1[i], -1);[](#l13.366)
}[](#l13.367)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.368)
errn += verify("test_2vi_aln: a2", i, a2[i], -1);[](#l13.369)
}[](#l13.370)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l13.371)
errn += verify("test_2vi_aln: a2", i, a2[i], 103);[](#l13.372)
}[](#l13.373)
// Reset for 2 arrays with relative unaligned offset[](#l13.375)
for (int i=0; i<ARRLEN; i++) {[](#l13.376)
a1[i] = -1;[](#l13.377)
a2[i] = -1;[](#l13.378)
}[](#l13.379)
test_vi(a2, 123, -1);[](#l13.380)
test_cp_unalndst(a1, a2);[](#l13.381)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l13.382)
errn += verify("test_cp_unalndst: a1", i, a1[i], -1);[](#l13.383)
}[](#l13.384)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.385)
errn += verify("test_cp_unalndst: a1", i, a1[i], 123);[](#l13.386)
}[](#l13.387)
test_vi(a2, -123, 123);[](#l13.388)
test_cp_unalnsrc(a1, a2);[](#l13.389)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l13.390)
errn += verify("test_cp_unalnsrc: a1", i, a1[i], -123);[](#l13.391)
}[](#l13.392)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.393)
errn += verify("test_cp_unalnsrc: a1", i, a1[i], 123);[](#l13.394)
}[](#l13.395)
for (int i=0; i<ARRLEN; i++) {[](#l13.396)
a1[i] = -1;[](#l13.397)
a2[i] = -1;[](#l13.398)
}[](#l13.399)
test_2ci_unaln(a1, a2);[](#l13.400)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l13.401)
errn += verify("test_2ci_unaln: a1", i, a1[i], -1);[](#l13.402)
}[](#l13.403)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.404)
errn += verify("test_2ci_unaln: a1", i, a1[i], -123);[](#l13.405)
}[](#l13.406)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l13.407)
errn += verify("test_2ci_unaln: a2", i, a2[i], -103);[](#l13.408)
}[](#l13.409)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.410)
errn += verify("test_2ci_unaln: a2", i, a2[i], -1);[](#l13.411)
}[](#l13.412)
for (int i=0; i<ARRLEN; i++) {[](#l13.413)
a1[i] = -1;[](#l13.414)
a2[i] = -1;[](#l13.415)
}[](#l13.416)
test_2vi_unaln(a1, a2, 123, 103);[](#l13.417)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l13.418)
errn += verify("test_2vi_unaln: a1", i, a1[i], 123);[](#l13.419)
}[](#l13.420)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.421)
errn += verify("test_2vi_unaln: a1", i, a1[i], -1);[](#l13.422)
}[](#l13.423)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l13.424)
errn += verify("test_2vi_unaln: a2", i, a2[i], -1);[](#l13.425)
}[](#l13.426)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.427)
errn += verify("test_2vi_unaln: a2", i, a2[i], 103);[](#l13.428)
}[](#l13.429)
// Reset for aligned overlap initialization[](#l13.431)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.432)
a1[i] = i;[](#l13.433)
}[](#l13.434)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l13.435)
a1[i] = -1;[](#l13.436)
}[](#l13.437)
test_cp_alndst(a1, a1);[](#l13.438)
for (int i=0; i<ARRLEN; i++) {[](#l13.439)
int v = i%ALIGN_OFF;[](#l13.440)
errn += verify("test_cp_alndst_overlap: a1", i, a1[i], v);[](#l13.441)
}[](#l13.442)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.443)
a1[i+ALIGN_OFF] = -1;[](#l13.444)
}[](#l13.445)
test_cp_alnsrc(a1, a1);[](#l13.446)
for (int i=0; i<ALIGN_OFF; i++) {[](#l13.447)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], -1);[](#l13.448)
}[](#l13.449)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l13.450)
int v = i%ALIGN_OFF;[](#l13.451)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], v);[](#l13.452)
}[](#l13.453)
for (int i=0; i<ARRLEN; i++) {[](#l13.454)
a1[i] = -1;[](#l13.455)
}[](#l13.456)
test_2ci_aln(a1, a1);[](#l13.457)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l13.458)
errn += verify("test_2ci_aln_overlap: a1", i, a1[i], -103);[](#l13.459)
}[](#l13.460)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l13.461)
errn += verify("test_2ci_aln_overlap: a1", i, a1[i], -123);[](#l13.462)
}[](#l13.463)
for (int i=0; i<ARRLEN; i++) {[](#l13.464)
a1[i] = -1;[](#l13.465)
}[](#l13.466)
test_2vi_aln(a1, a1, 123, 103);[](#l13.467)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l13.468)
errn += verify("test_2vi_aln_overlap: a1", i, a1[i], 123);[](#l13.469)
}[](#l13.470)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l13.471)
errn += verify("test_2vi_aln_overlap: a1", i, a1[i], 103);[](#l13.472)
}[](#l13.473)
// Reset for unaligned overlap initialization[](#l13.475)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l13.476)
a1[i] = i;[](#l13.477)
}[](#l13.478)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.479)
a1[i] = -1;[](#l13.480)
}[](#l13.481)
test_cp_unalndst(a1, a1);[](#l13.482)
for (int i=0; i<ARRLEN; i++) {[](#l13.483)
int v = i%UNALIGN_OFF;[](#l13.484)
errn += verify("test_cp_unalndst_overlap: a1", i, a1[i], v);[](#l13.485)
}[](#l13.486)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l13.487)
a1[i+UNALIGN_OFF] = -1;[](#l13.488)
}[](#l13.489)
test_cp_unalnsrc(a1, a1);[](#l13.490)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l13.491)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], -1);[](#l13.492)
}[](#l13.493)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.494)
int v = i%UNALIGN_OFF;[](#l13.495)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], v);[](#l13.496)
}[](#l13.497)
for (int i=0; i<ARRLEN; i++) {[](#l13.498)
a1[i] = -1;[](#l13.499)
}[](#l13.500)
test_2ci_unaln(a1, a1);[](#l13.501)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l13.502)
errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], -103);[](#l13.503)
}[](#l13.504)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.505)
errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], -123);[](#l13.506)
}[](#l13.507)
for (int i=0; i<ARRLEN; i++) {[](#l13.508)
a1[i] = -1;[](#l13.509)
}[](#l13.510)
test_2vi_unaln(a1, a1, 123, 103);[](#l13.511)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l13.512)
errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], 123);[](#l13.513)
}[](#l13.514)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l13.515)
errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], 103);[](#l13.516)
}[](#l13.517)
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l13.526)
a2[i] = -1;[](#l13.527)
- }
- System.out.println("Time");
- long start, end;
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l13.533)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi(a2, 123, -1);[](#l13.539)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp(a1, a2);[](#l13.545)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci(a1, a2);[](#l13.551)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi(a1, a2, 123, 103);[](#l13.557)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_neg(a1, 123);[](#l13.564)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_neg(a2, 123, 103);[](#l13.570)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_neg(a1, a2);[](#l13.576)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_neg(a1, a2);[](#l13.582)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_neg(a1, a2, 123, 103);[](#l13.588)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_oppos(a1, 123);[](#l13.595)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_oppos(a2, 123, 103);[](#l13.601)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_oppos(a1, a2);[](#l13.607)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_oppos(a1, a2);[](#l13.613)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_oppos(a1, a2, 123, 103);[](#l13.619)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_off(a1, 123);[](#l13.626)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_off(a2, 123, 103);[](#l13.632)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_off(a1, a2);[](#l13.638)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_off(a1, a2);[](#l13.644)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_off(a1, a2, 123, 103);[](#l13.650)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_inv(a1, OFFSET, 123);[](#l13.657)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_inv(a2, 123, OFFSET, 103);[](#l13.663)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_inv(a1, a2, OFFSET);[](#l13.669)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_inv(a1, a2, OFFSET);[](#l13.675)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l13.681)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_scl(a1, 123);[](#l13.688)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_scl(a2, 123, 103);[](#l13.694)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_scl(a1, a2);[](#l13.700)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_scl(a1, a2);[](#l13.706)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_scl(a1, a2, 123, 103);[](#l13.712)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alndst(a1, a2);[](#l13.719)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alnsrc(a1, a2);[](#l13.725)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_aln(a1, a2);[](#l13.731)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_aln(a1, a2, 123, 103);[](#l13.737)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalndst(a1, a2);[](#l13.744)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalnsrc(a1, a2);[](#l13.750)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_unaln(a1, a2);[](#l13.756)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_unaln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_unaln(a1, a2, 123, 103);[](#l13.762)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_unaln: " + (end - start));
- return errn;
- } +
- private final static long byte_offset(int i) {
- return ((long)i << 2) + BASE;
- } +
- static void test_ci(int[] a) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -1, -123);[](#l13.776)
- }
- }
- static void test_vi(int[] a, int b, int old) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), old, b);[](#l13.781)
- }
- }
- static void test_cp(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -123, b[i]);[](#l13.786)
- }
- }
- static void test_2ci(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), 123, -123);[](#l13.791)
unsafe.compareAndSwapInt(b, byte_offset(i), 123, -103);[](#l13.792)
- }
- }
- static void test_2vi(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -123, c);[](#l13.797)
unsafe.compareAndSwapInt(b, byte_offset(i), -103, d);[](#l13.798)
- }
- }
- static void test_ci_neg(int[] a, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), old, -123);[](#l13.803)
- }
- }
- static void test_vi_neg(int[] a, int b, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), old, b);[](#l13.808)
- }
- }
- static void test_cp_neg(int[] a, int[] b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -123, b[i]);[](#l13.813)
- }
- }
- static void test_2ci_neg(int[] a, int[] b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), 123, -123);[](#l13.818)
unsafe.compareAndSwapInt(b, byte_offset(i), 123, -103);[](#l13.819)
- }
- }
- static void test_2vi_neg(int[] a, int[] b, int c, int d) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -123, c);[](#l13.824)
unsafe.compareAndSwapInt(b, byte_offset(i), -103, d);[](#l13.825)
- }
- }
- static void test_ci_oppos(int[] a, int old) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(limit-i), old, -123);[](#l13.831)
- }
- }
- static void test_vi_oppos(int[] a, int b, int old) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(limit-i), old, b);[](#l13.837)
- }
- }
- static void test_cp_oppos(int[] a, int[] b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -123, b[limit-i]);[](#l13.843)
- }
- }
- static void test_2ci_oppos(int[] a, int[] b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(limit-i), 123, -123);[](#l13.849)
unsafe.compareAndSwapInt(b, byte_offset(i), 123, -103);[](#l13.850)
- }
- }
- static void test_2vi_oppos(int[] a, int[] b, int c, int d) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
unsafe.compareAndSwapInt(a, byte_offset(i), -123, c);[](#l13.856)
unsafe.compareAndSwapInt(b, byte_offset(limit-i), -103, d);[](#l13.857)
- }
- }
- static void test_ci_off(int[] a, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+OFFSET), old, -123);[](#l13.862)
- }
- }
- static void test_vi_off(int[] a, int b, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+OFFSET), old, b);[](#l13.867)
- }
- }
- static void test_cp_off(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+OFFSET), -123, b[i+OFFSET]);[](#l13.872)
- }
- }
- static void test_2ci_off(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+OFFSET), 123, -123);[](#l13.877)
unsafe.compareAndSwapInt(b, byte_offset(i+OFFSET), 123, -103);[](#l13.878)
- }
- }
- static void test_2vi_off(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+OFFSET), -123, c);[](#l13.883)
unsafe.compareAndSwapInt(b, byte_offset(i+OFFSET), -103, d);[](#l13.884)
- }
- }
- static void test_ci_inv(int[] a, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+k), old, -123);[](#l13.889)
- }
- }
- static void test_vi_inv(int[] a, int b, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+k), old, b);[](#l13.894)
- }
- }
- static void test_cp_inv(int[] a, int[] b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+k), -123, b[i+k]);[](#l13.899)
- }
- }
- static void test_2ci_inv(int[] a, int[] b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+k), 123, -123);[](#l13.904)
unsafe.compareAndSwapInt(b, byte_offset(i+k), 123, -103);[](#l13.905)
- }
- }
- static void test_2vi_inv(int[] a, int[] b, int c, int d, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+k), -123, c);[](#l13.910)
unsafe.compareAndSwapInt(b, byte_offset(i+k), -103, d);[](#l13.911)
- }
- }
- static void test_ci_scl(int[] a, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i*SCALE), old, -123);[](#l13.916)
- }
- }
- static void test_vi_scl(int[] a, int b, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i*SCALE), old, b);[](#l13.921)
- }
- }
- static void test_cp_scl(int[] a, int[] b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i*SCALE), -123, b[i*SCALE]);[](#l13.926)
- }
- }
- static void test_2ci_scl(int[] a, int[] b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i*SCALE), 123, -123);[](#l13.931)
unsafe.compareAndSwapInt(b, byte_offset(i*SCALE), 123, -103);[](#l13.932)
- }
- }
- static void test_2vi_scl(int[] a, int[] b, int c, int d) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i*SCALE), -123, c);[](#l13.937)
unsafe.compareAndSwapInt(b, byte_offset(i*SCALE), -103, d);[](#l13.938)
- }
- }
- static void test_cp_alndst(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+ALIGN_OFF), -1, b[i]);[](#l13.943)
- }
- }
- static void test_cp_alnsrc(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
int old = unsafe.getIntVolatile(a, byte_offset(i));[](#l13.948)
unsafe.compareAndSwapInt(a, byte_offset(i), old, b[i+ALIGN_OFF]);[](#l13.949)
- }
- }
- static void test_2ci_aln(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+ALIGN_OFF), -1, -123);[](#l13.954)
int old = unsafe.getIntVolatile(b, byte_offset(i));[](#l13.955)
unsafe.compareAndSwapInt(b, byte_offset(i), old, -103);[](#l13.956)
- }
- }
- static void test_2vi_aln(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
int old = unsafe.getIntVolatile(a, byte_offset(i));[](#l13.961)
unsafe.compareAndSwapInt(a, byte_offset(i), old, c);[](#l13.962)
old = unsafe.getIntVolatile(b, byte_offset(i+ALIGN_OFF));[](#l13.963)
unsafe.compareAndSwapInt(b, byte_offset(i+ALIGN_OFF), old, d);[](#l13.964)
- }
- }
- static void test_cp_unalndst(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+UNALIGN_OFF), -1, b[i]);[](#l13.969)
- }
- }
- static void test_cp_unalnsrc(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
int old = unsafe.getIntVolatile(a, byte_offset(i));[](#l13.974)
unsafe.compareAndSwapInt(a, byte_offset(i), old, b[i+UNALIGN_OFF]);[](#l13.975)
- }
- }
- static void test_2ci_unaln(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.compareAndSwapInt(a, byte_offset(i+UNALIGN_OFF), -1, -123);[](#l13.980)
int old = unsafe.getIntVolatile(b, byte_offset(i));[](#l13.981)
unsafe.compareAndSwapInt(b, byte_offset(i), old, -103);[](#l13.982)
- }
- }
- static void test_2vi_unaln(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
int old = unsafe.getIntVolatile(a, byte_offset(i));[](#l13.987)
unsafe.compareAndSwapInt(a, byte_offset(i), old, c);[](#l13.988)
old = unsafe.getIntVolatile(b, byte_offset(i+UNALIGN_OFF));[](#l13.989)
unsafe.compareAndSwapInt(b, byte_offset(i+UNALIGN_OFF), old, d);[](#l13.990)
- }
- } +
- static int verify(String text, int i, int elem, int val) {
- if (elem != val) {
System.err.println(text + "[" + i + "] = " + elem + " != " + val);[](#l13.996)
return 1;[](#l13.997)
- }
- return 0;
- } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/compiler/8004867/TestIntUnsafeOrdered.java Thu Feb 21 06:29:43 2013 -0800 @@ -0,0 +1,990 @@ +/*
- *
- *
- *
- *
- or visit www.oracle.com if you need additional information or have any
- *
- */ + +/**
- *
- / + +import sun.misc.Unsafe; +import java.lang.reflect.; + +public class TestIntUnsafeOrdered {
- private static final int ARRLEN = 97;
- private static final int ITERS = 11000;
- private static final int OFFSET = 3;
- private static final int SCALE = 2;
- private static final int ALIGN_OFF = 8;
- private static final int UNALIGN_OFF = 5; +
- private static final Unsafe unsafe;
- private static final int BASE;
- static {
- try {
Class c = TestIntUnsafeOrdered.class.getClassLoader().loadClass("sun.misc.Unsafe");[](#l14.52)
Field f = c.getDeclaredField("theUnsafe");[](#l14.53)
f.setAccessible(true);[](#l14.54)
unsafe = (Unsafe)f.get(c);[](#l14.55)
BASE = unsafe.arrayBaseOffset(int[].class);[](#l14.56)
- } catch (Exception e) {
InternalError err = new InternalError();[](#l14.58)
err.initCause(e);[](#l14.59)
throw err;[](#l14.60)
- }
- } +
- public static void main(String args[]) {
- System.out.println("Testing Integer array unsafe ordered operations");
- int errn = test(false);
- if (errn > 0) {
System.err.println("FAILED: " + errn + " errors");[](#l14.68)
System.exit(97);[](#l14.69)
- }
- System.out.println("PASSED");
- } +
- static int test(boolean test_only) {
- int[] a1 = new int[ARRLEN];
- int[] a2 = new int[ARRLEN];
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l14.79)
a2[i] = -1;[](#l14.80)
- }
- System.out.println("Warmup");
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l14.84)
test_vi(a2, 123, -1);[](#l14.85)
test_cp(a1, a2);[](#l14.86)
test_2ci(a1, a2);[](#l14.87)
test_2vi(a1, a2, 123, 103);[](#l14.88)
test_ci_neg(a1, 123);[](#l14.89)
test_vi_neg(a2, 123, 103);[](#l14.90)
test_cp_neg(a1, a2);[](#l14.91)
test_2ci_neg(a1, a2);[](#l14.92)
test_2vi_neg(a1, a2, 123, 103);[](#l14.93)
test_ci_oppos(a1, 123);[](#l14.94)
test_vi_oppos(a2, 123, 103);[](#l14.95)
test_cp_oppos(a1, a2);[](#l14.96)
test_2ci_oppos(a1, a2);[](#l14.97)
test_2vi_oppos(a1, a2, 123, 103);[](#l14.98)
test_ci_off(a1, 123);[](#l14.99)
test_vi_off(a2, 123, 103);[](#l14.100)
test_cp_off(a1, a2);[](#l14.101)
test_2ci_off(a1, a2);[](#l14.102)
test_2vi_off(a1, a2, 123, 103);[](#l14.103)
test_ci_inv(a1, OFFSET, 123);[](#l14.104)
test_vi_inv(a2, 123, OFFSET, 103);[](#l14.105)
test_cp_inv(a1, a2, OFFSET);[](#l14.106)
test_2ci_inv(a1, a2, OFFSET);[](#l14.107)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l14.108)
test_ci_scl(a1, 123);[](#l14.109)
test_vi_scl(a2, 123, 103);[](#l14.110)
test_cp_scl(a1, a2);[](#l14.111)
test_2ci_scl(a1, a2);[](#l14.112)
test_2vi_scl(a1, a2, 123, 103);[](#l14.113)
test_cp_alndst(a1, a2);[](#l14.114)
test_cp_alnsrc(a1, a2);[](#l14.115)
test_2ci_aln(a1, a2);[](#l14.116)
test_2vi_aln(a1, a2, 123, 103);[](#l14.117)
test_cp_unalndst(a1, a2);[](#l14.118)
test_cp_unalnsrc(a1, a2);[](#l14.119)
test_2ci_unaln(a1, a2);[](#l14.120)
test_2vi_unaln(a1, a2, 123, 103);[](#l14.121)
- }
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l14.125)
a2[i] = -1;[](#l14.126)
- }
- // Test and verify results
- System.out.println("Verification");
- int errn = 0;
- {
test_ci(a1);[](#l14.132)
for (int i=0; i<ARRLEN; i++) {[](#l14.133)
errn += verify("test_ci: a1", i, a1[i], -123);[](#l14.134)
}[](#l14.135)
test_vi(a2, 123, -1);[](#l14.136)
for (int i=0; i<ARRLEN; i++) {[](#l14.137)
errn += verify("test_vi: a2", i, a2[i], 123);[](#l14.138)
}[](#l14.139)
test_cp(a1, a2);[](#l14.140)
for (int i=0; i<ARRLEN; i++) {[](#l14.141)
errn += verify("test_cp: a1", i, a1[i], 123);[](#l14.142)
}[](#l14.143)
test_2ci(a1, a2);[](#l14.144)
for (int i=0; i<ARRLEN; i++) {[](#l14.145)
errn += verify("test_2ci: a1", i, a1[i], -123);[](#l14.146)
errn += verify("test_2ci: a2", i, a2[i], -103);[](#l14.147)
}[](#l14.148)
test_2vi(a1, a2, 123, 103);[](#l14.149)
for (int i=0; i<ARRLEN; i++) {[](#l14.150)
errn += verify("test_2vi: a1", i, a1[i], 123);[](#l14.151)
errn += verify("test_2vi: a2", i, a2[i], 103);[](#l14.152)
}[](#l14.153)
// Reset for negative stride[](#l14.154)
for (int i=0; i<ARRLEN; i++) {[](#l14.155)
a1[i] = -1;[](#l14.156)
a2[i] = -1;[](#l14.157)
}[](#l14.158)
test_ci_neg(a1, -1);[](#l14.159)
for (int i=0; i<ARRLEN; i++) {[](#l14.160)
errn += verify("test_ci_neg: a1", i, a1[i], -123);[](#l14.161)
}[](#l14.162)
test_vi_neg(a2, 123, -1);[](#l14.163)
for (int i=0; i<ARRLEN; i++) {[](#l14.164)
errn += verify("test_vi_neg: a2", i, a2[i], 123);[](#l14.165)
}[](#l14.166)
test_cp_neg(a1, a2);[](#l14.167)
for (int i=0; i<ARRLEN; i++) {[](#l14.168)
errn += verify("test_cp_neg: a1", i, a1[i], 123);[](#l14.169)
}[](#l14.170)
test_2ci_neg(a1, a2);[](#l14.171)
for (int i=0; i<ARRLEN; i++) {[](#l14.172)
errn += verify("test_2ci_neg: a1", i, a1[i], -123);[](#l14.173)
errn += verify("test_2ci_neg: a2", i, a2[i], -103);[](#l14.174)
}[](#l14.175)
test_2vi_neg(a1, a2, 123, 103);[](#l14.176)
for (int i=0; i<ARRLEN; i++) {[](#l14.177)
errn += verify("test_2vi_neg: a1", i, a1[i], 123);[](#l14.178)
errn += verify("test_2vi_neg: a2", i, a2[i], 103);[](#l14.179)
}[](#l14.180)
// Reset for opposite stride[](#l14.181)
for (int i=0; i<ARRLEN; i++) {[](#l14.182)
a1[i] = -1;[](#l14.183)
a2[i] = -1;[](#l14.184)
}[](#l14.185)
test_ci_oppos(a1, -1);[](#l14.186)
for (int i=0; i<ARRLEN; i++) {[](#l14.187)
errn += verify("test_ci_oppos: a1", i, a1[i], -123);[](#l14.188)
}[](#l14.189)
test_vi_oppos(a2, 123, -1);[](#l14.190)
for (int i=0; i<ARRLEN; i++) {[](#l14.191)
errn += verify("test_vi_oppos: a2", i, a2[i], 123);[](#l14.192)
}[](#l14.193)
test_cp_oppos(a1, a2);[](#l14.194)
for (int i=0; i<ARRLEN; i++) {[](#l14.195)
errn += verify("test_cp_oppos: a1", i, a1[i], 123);[](#l14.196)
}[](#l14.197)
test_2ci_oppos(a1, a2);[](#l14.198)
for (int i=0; i<ARRLEN; i++) {[](#l14.199)
errn += verify("test_2ci_oppos: a1", i, a1[i], -123);[](#l14.200)
errn += verify("test_2ci_oppos: a2", i, a2[i], -103);[](#l14.201)
}[](#l14.202)
test_2vi_oppos(a1, a2, 123, 103);[](#l14.203)
for (int i=0; i<ARRLEN; i++) {[](#l14.204)
errn += verify("test_2vi_oppos: a1", i, a1[i], 123);[](#l14.205)
errn += verify("test_2vi_oppos: a2", i, a2[i], 103);[](#l14.206)
}[](#l14.207)
// Reset for indexing with offset[](#l14.208)
for (int i=0; i<ARRLEN; i++) {[](#l14.209)
a1[i] = -1;[](#l14.210)
a2[i] = -1;[](#l14.211)
}[](#l14.212)
test_ci_off(a1, -1);[](#l14.213)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.214)
errn += verify("test_ci_off: a1", i, a1[i], -123);[](#l14.215)
}[](#l14.216)
test_vi_off(a2, 123, -1);[](#l14.217)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.218)
errn += verify("test_vi_off: a2", i, a2[i], 123);[](#l14.219)
}[](#l14.220)
test_cp_off(a1, a2);[](#l14.221)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.222)
errn += verify("test_cp_off: a1", i, a1[i], 123);[](#l14.223)
}[](#l14.224)
test_2ci_off(a1, a2);[](#l14.225)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.226)
errn += verify("test_2ci_off: a1", i, a1[i], -123);[](#l14.227)
errn += verify("test_2ci_off: a2", i, a2[i], -103);[](#l14.228)
}[](#l14.229)
test_2vi_off(a1, a2, 123, 103);[](#l14.230)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.231)
errn += verify("test_2vi_off: a1", i, a1[i], 123);[](#l14.232)
errn += verify("test_2vi_off: a2", i, a2[i], 103);[](#l14.233)
}[](#l14.234)
for (int i=0; i<OFFSET; i++) {[](#l14.235)
errn += verify("test_2vi_off: a1", i, a1[i], -1);[](#l14.236)
errn += verify("test_2vi_off: a2", i, a2[i], -1);[](#l14.237)
}[](#l14.238)
// Reset for indexing with invariant offset[](#l14.239)
for (int i=0; i<ARRLEN; i++) {[](#l14.240)
a1[i] = -1;[](#l14.241)
a2[i] = -1;[](#l14.242)
}[](#l14.243)
test_ci_inv(a1, OFFSET, -1);[](#l14.244)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.245)
errn += verify("test_ci_inv: a1", i, a1[i], -123);[](#l14.246)
}[](#l14.247)
test_vi_inv(a2, 123, OFFSET, -1);[](#l14.248)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.249)
errn += verify("test_vi_inv: a2", i, a2[i], 123);[](#l14.250)
}[](#l14.251)
test_cp_inv(a1, a2, OFFSET);[](#l14.252)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.253)
errn += verify("test_cp_inv: a1", i, a1[i], 123);[](#l14.254)
}[](#l14.255)
test_2ci_inv(a1, a2, OFFSET);[](#l14.256)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.257)
errn += verify("test_2ci_inv: a1", i, a1[i], -123);[](#l14.258)
errn += verify("test_2ci_inv: a2", i, a2[i], -103);[](#l14.259)
}[](#l14.260)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l14.261)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l14.262)
errn += verify("test_2vi_inv: a1", i, a1[i], 123);[](#l14.263)
errn += verify("test_2vi_inv: a2", i, a2[i], 103);[](#l14.264)
}[](#l14.265)
for (int i=0; i<OFFSET; i++) {[](#l14.266)
errn += verify("test_2vi_inv: a1", i, a1[i], -1);[](#l14.267)
errn += verify("test_2vi_inv: a2", i, a2[i], -1);[](#l14.268)
}[](#l14.269)
// Reset for indexing with scale[](#l14.270)
for (int i=0; i<ARRLEN; i++) {[](#l14.271)
a1[i] = -1;[](#l14.272)
a2[i] = -1;[](#l14.273)
}[](#l14.274)
test_ci_scl(a1, -1);[](#l14.275)
for (int i=0; i<ARRLEN; i++) {[](#l14.276)
int val = (i%SCALE != 0) ? -1 : -123;[](#l14.277)
errn += verify("test_ci_scl: a1", i, a1[i], val);[](#l14.278)
}[](#l14.279)
test_vi_scl(a2, 123, -1);[](#l14.280)
for (int i=0; i<ARRLEN; i++) {[](#l14.281)
int val = (i%SCALE != 0) ? -1 : 123;[](#l14.282)
errn += verify("test_vi_scl: a2", i, a2[i], val);[](#l14.283)
}[](#l14.284)
test_cp_scl(a1, a2);[](#l14.285)
for (int i=0; i<ARRLEN; i++) {[](#l14.286)
int val = (i%SCALE != 0) ? -1 : 123;[](#l14.287)
errn += verify("test_cp_scl: a1", i, a1[i], val);[](#l14.288)
}[](#l14.289)
test_2ci_scl(a1, a2);[](#l14.290)
for (int i=0; i<ARRLEN; i++) {[](#l14.291)
if (i%SCALE != 0) {[](#l14.292)
errn += verify("test_2ci_scl: a1", i, a1[i], -1);[](#l14.293)
} else if (i*SCALE < ARRLEN) {[](#l14.294)
errn += verify("test_2ci_scl: a1", i*SCALE, a1[i*SCALE], -123);[](#l14.295)
}[](#l14.296)
if (i%SCALE != 0) {[](#l14.297)
errn += verify("test_2ci_scl: a2", i, a2[i], -1);[](#l14.298)
} else if (i*SCALE < ARRLEN) {[](#l14.299)
errn += verify("test_2ci_scl: a2", i*SCALE, a2[i*SCALE], -103);[](#l14.300)
}[](#l14.301)
}[](#l14.302)
test_2vi_scl(a1, a2, 123, 103);[](#l14.303)
for (int i=0; i<ARRLEN; i++) {[](#l14.304)
if (i%SCALE != 0) {[](#l14.305)
errn += verify("test_2vi_scl: a1", i, a1[i], -1);[](#l14.306)
} else if (i*SCALE < ARRLEN) {[](#l14.307)
errn += verify("test_2vi_scl: a1", i*SCALE, a1[i*SCALE], 123);[](#l14.308)
}[](#l14.309)
if (i%SCALE != 0) {[](#l14.310)
errn += verify("test_2vi_scl: a2", i, a2[i], -1);[](#l14.311)
} else if (i*SCALE < ARRLEN) {[](#l14.312)
errn += verify("test_2vi_scl: a2", i*SCALE, a2[i*SCALE], 103);[](#l14.313)
}[](#l14.314)
}[](#l14.315)
// Reset for 2 arrays with relative aligned offset[](#l14.316)
for (int i=0; i<ARRLEN; i++) {[](#l14.317)
a1[i] = -1;[](#l14.318)
a2[i] = -1;[](#l14.319)
}[](#l14.320)
test_vi(a2, 123, -1);[](#l14.321)
test_cp_alndst(a1, a2);[](#l14.322)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.323)
errn += verify("test_cp_alndst: a1", i, a1[i], -1);[](#l14.324)
}[](#l14.325)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l14.326)
errn += verify("test_cp_alndst: a1", i, a1[i], 123);[](#l14.327)
}[](#l14.328)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.329)
a1[i] = 123;[](#l14.330)
}[](#l14.331)
test_vi(a2, -123, 123);[](#l14.332)
test_cp_alnsrc(a1, a2);[](#l14.333)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l14.334)
errn += verify("test_cp_alnsrc: a1", i, a1[i], -123);[](#l14.335)
}[](#l14.336)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l14.337)
errn += verify("test_cp_alnsrc: a1", i, a1[i], 123);[](#l14.338)
}[](#l14.339)
for (int i=0; i<ARRLEN; i++) {[](#l14.340)
a1[i] = -1;[](#l14.341)
a2[i] = -1;[](#l14.342)
}[](#l14.343)
test_2ci_aln(a1, a2);[](#l14.344)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.345)
errn += verify("test_2ci_aln: a1", i, a1[i], -1);[](#l14.346)
}[](#l14.347)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l14.348)
errn += verify("test_2ci_aln: a1", i, a1[i], -123);[](#l14.349)
}[](#l14.350)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l14.351)
errn += verify("test_2ci_aln: a2", i, a2[i], -103);[](#l14.352)
}[](#l14.353)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l14.354)
errn += verify("test_2ci_aln: a2", i, a2[i], -1);[](#l14.355)
}[](#l14.356)
for (int i=0; i<ARRLEN; i++) {[](#l14.357)
a1[i] = -1;[](#l14.358)
a2[i] = -1;[](#l14.359)
}[](#l14.360)
test_2vi_aln(a1, a2, 123, 103);[](#l14.361)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l14.362)
errn += verify("test_2vi_aln: a1", i, a1[i], 123);[](#l14.363)
}[](#l14.364)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l14.365)
errn += verify("test_2vi_aln: a1", i, a1[i], -1);[](#l14.366)
}[](#l14.367)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.368)
errn += verify("test_2vi_aln: a2", i, a2[i], -1);[](#l14.369)
}[](#l14.370)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l14.371)
errn += verify("test_2vi_aln: a2", i, a2[i], 103);[](#l14.372)
}[](#l14.373)
// Reset for 2 arrays with relative unaligned offset[](#l14.375)
for (int i=0; i<ARRLEN; i++) {[](#l14.376)
a1[i] = -1;[](#l14.377)
a2[i] = -1;[](#l14.378)
}[](#l14.379)
test_vi(a2, 123, -1);[](#l14.380)
test_cp_unalndst(a1, a2);[](#l14.381)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l14.382)
errn += verify("test_cp_unalndst: a1", i, a1[i], -1);[](#l14.383)
}[](#l14.384)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.385)
errn += verify("test_cp_unalndst: a1", i, a1[i], 123);[](#l14.386)
}[](#l14.387)
test_vi(a2, -123, 123);[](#l14.388)
test_cp_unalnsrc(a1, a2);[](#l14.389)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l14.390)
errn += verify("test_cp_unalnsrc: a1", i, a1[i], -123);[](#l14.391)
}[](#l14.392)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.393)
errn += verify("test_cp_unalnsrc: a1", i, a1[i], 123);[](#l14.394)
}[](#l14.395)
for (int i=0; i<ARRLEN; i++) {[](#l14.396)
a1[i] = -1;[](#l14.397)
a2[i] = -1;[](#l14.398)
}[](#l14.399)
test_2ci_unaln(a1, a2);[](#l14.400)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l14.401)
errn += verify("test_2ci_unaln: a1", i, a1[i], -1);[](#l14.402)
}[](#l14.403)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.404)
errn += verify("test_2ci_unaln: a1", i, a1[i], -123);[](#l14.405)
}[](#l14.406)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l14.407)
errn += verify("test_2ci_unaln: a2", i, a2[i], -103);[](#l14.408)
}[](#l14.409)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.410)
errn += verify("test_2ci_unaln: a2", i, a2[i], -1);[](#l14.411)
}[](#l14.412)
for (int i=0; i<ARRLEN; i++) {[](#l14.413)
a1[i] = -1;[](#l14.414)
a2[i] = -1;[](#l14.415)
}[](#l14.416)
test_2vi_unaln(a1, a2, 123, 103);[](#l14.417)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l14.418)
errn += verify("test_2vi_unaln: a1", i, a1[i], 123);[](#l14.419)
}[](#l14.420)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.421)
errn += verify("test_2vi_unaln: a1", i, a1[i], -1);[](#l14.422)
}[](#l14.423)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l14.424)
errn += verify("test_2vi_unaln: a2", i, a2[i], -1);[](#l14.425)
}[](#l14.426)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.427)
errn += verify("test_2vi_unaln: a2", i, a2[i], 103);[](#l14.428)
}[](#l14.429)
// Reset for aligned overlap initialization[](#l14.431)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.432)
a1[i] = i;[](#l14.433)
}[](#l14.434)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l14.435)
a1[i] = -1;[](#l14.436)
}[](#l14.437)
test_cp_alndst(a1, a1);[](#l14.438)
for (int i=0; i<ARRLEN; i++) {[](#l14.439)
int v = i%ALIGN_OFF;[](#l14.440)
errn += verify("test_cp_alndst_overlap: a1", i, a1[i], v);[](#l14.441)
}[](#l14.442)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.443)
a1[i+ALIGN_OFF] = -1;[](#l14.444)
}[](#l14.445)
test_cp_alnsrc(a1, a1);[](#l14.446)
for (int i=0; i<ALIGN_OFF; i++) {[](#l14.447)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], -1);[](#l14.448)
}[](#l14.449)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l14.450)
int v = i%ALIGN_OFF;[](#l14.451)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], v);[](#l14.452)
}[](#l14.453)
for (int i=0; i<ARRLEN; i++) {[](#l14.454)
a1[i] = -1;[](#l14.455)
}[](#l14.456)
test_2ci_aln(a1, a1);[](#l14.457)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l14.458)
errn += verify("test_2ci_aln_overlap: a1", i, a1[i], -103);[](#l14.459)
}[](#l14.460)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l14.461)
errn += verify("test_2ci_aln_overlap: a1", i, a1[i], -123);[](#l14.462)
}[](#l14.463)
for (int i=0; i<ARRLEN; i++) {[](#l14.464)
a1[i] = -1;[](#l14.465)
}[](#l14.466)
test_2vi_aln(a1, a1, 123, 103);[](#l14.467)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l14.468)
errn += verify("test_2vi_aln_overlap: a1", i, a1[i], 123);[](#l14.469)
}[](#l14.470)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l14.471)
errn += verify("test_2vi_aln_overlap: a1", i, a1[i], 103);[](#l14.472)
}[](#l14.473)
// Reset for unaligned overlap initialization[](#l14.475)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l14.476)
a1[i] = i;[](#l14.477)
}[](#l14.478)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.479)
a1[i] = -1;[](#l14.480)
}[](#l14.481)
test_cp_unalndst(a1, a1);[](#l14.482)
for (int i=0; i<ARRLEN; i++) {[](#l14.483)
int v = i%UNALIGN_OFF;[](#l14.484)
errn += verify("test_cp_unalndst_overlap: a1", i, a1[i], v);[](#l14.485)
}[](#l14.486)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l14.487)
a1[i+UNALIGN_OFF] = -1;[](#l14.488)
}[](#l14.489)
test_cp_unalnsrc(a1, a1);[](#l14.490)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l14.491)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], -1);[](#l14.492)
}[](#l14.493)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.494)
int v = i%UNALIGN_OFF;[](#l14.495)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], v);[](#l14.496)
}[](#l14.497)
for (int i=0; i<ARRLEN; i++) {[](#l14.498)
a1[i] = -1;[](#l14.499)
}[](#l14.500)
test_2ci_unaln(a1, a1);[](#l14.501)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l14.502)
errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], -103);[](#l14.503)
}[](#l14.504)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.505)
errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], -123);[](#l14.506)
}[](#l14.507)
for (int i=0; i<ARRLEN; i++) {[](#l14.508)
a1[i] = -1;[](#l14.509)
}[](#l14.510)
test_2vi_unaln(a1, a1, 123, 103);[](#l14.511)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l14.512)
errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], 123);[](#l14.513)
}[](#l14.514)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l14.515)
errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], 103);[](#l14.516)
}[](#l14.517)
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l14.526)
a2[i] = -1;[](#l14.527)
- }
- System.out.println("Time");
- long start, end;
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l14.533)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi(a2, 123, -1);[](#l14.539)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp(a1, a2);[](#l14.545)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci(a1, a2);[](#l14.551)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi(a1, a2, 123, 103);[](#l14.557)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_neg(a1, 123);[](#l14.564)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_neg(a2, 123, 103);[](#l14.570)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_neg(a1, a2);[](#l14.576)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_neg(a1, a2);[](#l14.582)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_neg(a1, a2, 123, 103);[](#l14.588)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_oppos(a1, 123);[](#l14.595)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_oppos(a2, 123, 103);[](#l14.601)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_oppos(a1, a2);[](#l14.607)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_oppos(a1, a2);[](#l14.613)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_oppos(a1, a2, 123, 103);[](#l14.619)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_off(a1, 123);[](#l14.626)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_off(a2, 123, 103);[](#l14.632)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_off(a1, a2);[](#l14.638)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_off(a1, a2);[](#l14.644)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_off(a1, a2, 123, 103);[](#l14.650)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_inv(a1, OFFSET, 123);[](#l14.657)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_inv(a2, 123, OFFSET, 103);[](#l14.663)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_inv(a1, a2, OFFSET);[](#l14.669)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_inv(a1, a2, OFFSET);[](#l14.675)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l14.681)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_scl(a1, 123);[](#l14.688)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_scl(a2, 123, 103);[](#l14.694)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_scl(a1, a2);[](#l14.700)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_scl(a1, a2);[](#l14.706)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_scl(a1, a2, 123, 103);[](#l14.712)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alndst(a1, a2);[](#l14.719)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alnsrc(a1, a2);[](#l14.725)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_aln(a1, a2);[](#l14.731)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_aln(a1, a2, 123, 103);[](#l14.737)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalndst(a1, a2);[](#l14.744)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalnsrc(a1, a2);[](#l14.750)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_unaln(a1, a2);[](#l14.756)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_unaln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_unaln(a1, a2, 123, 103);[](#l14.762)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_unaln: " + (end - start));
- return errn;
- } +
- private final static long byte_offset(int i) {
- return ((long)i << 2) + BASE;
- } +
- static void test_ci(int[] a) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), -123);[](#l14.776)
- }
- }
- static void test_vi(int[] a, int b, int old) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), b);[](#l14.781)
- }
- }
- static void test_cp(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), b[i]);[](#l14.786)
- }
- }
- static void test_2ci(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), -123);[](#l14.791)
unsafe.putOrderedInt(b, byte_offset(i), -103);[](#l14.792)
- }
- }
- static void test_2vi(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), c);[](#l14.797)
unsafe.putOrderedInt(b, byte_offset(i), d);[](#l14.798)
- }
- }
- static void test_ci_neg(int[] a, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(i), -123);[](#l14.803)
- }
- }
- static void test_vi_neg(int[] a, int b, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(i), b);[](#l14.808)
- }
- }
- static void test_cp_neg(int[] a, int[] b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(i), b[i]);[](#l14.813)
- }
- }
- static void test_2ci_neg(int[] a, int[] b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(i), -123);[](#l14.818)
unsafe.putOrderedInt(b, byte_offset(i), -103);[](#l14.819)
- }
- }
- static void test_2vi_neg(int[] a, int[] b, int c, int d) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(i), c);[](#l14.824)
unsafe.putOrderedInt(b, byte_offset(i), d);[](#l14.825)
- }
- }
- static void test_ci_oppos(int[] a, int old) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(limit-i), -123);[](#l14.831)
- }
- }
- static void test_vi_oppos(int[] a, int b, int old) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(limit-i), b);[](#l14.837)
- }
- }
- static void test_cp_oppos(int[] a, int[] b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), b[limit-i]);[](#l14.843)
- }
- }
- static void test_2ci_oppos(int[] a, int[] b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(limit-i), -123);[](#l14.849)
unsafe.putOrderedInt(b, byte_offset(i), -103);[](#l14.850)
- }
- }
- static void test_2vi_oppos(int[] a, int[] b, int c, int d) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
unsafe.putOrderedInt(a, byte_offset(i), c);[](#l14.856)
unsafe.putOrderedInt(b, byte_offset(limit-i), d);[](#l14.857)
- }
- }
- static void test_ci_off(int[] a, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+OFFSET), -123);[](#l14.862)
- }
- }
- static void test_vi_off(int[] a, int b, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+OFFSET), b);[](#l14.867)
- }
- }
- static void test_cp_off(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+OFFSET), b[i+OFFSET]);[](#l14.872)
- }
- }
- static void test_2ci_off(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+OFFSET), -123);[](#l14.877)
unsafe.putOrderedInt(b, byte_offset(i+OFFSET), -103);[](#l14.878)
- }
- }
- static void test_2vi_off(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+OFFSET), c);[](#l14.883)
unsafe.putOrderedInt(b, byte_offset(i+OFFSET), d);[](#l14.884)
- }
- }
- static void test_ci_inv(int[] a, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+k), -123);[](#l14.889)
- }
- }
- static void test_vi_inv(int[] a, int b, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+k), b);[](#l14.894)
- }
- }
- static void test_cp_inv(int[] a, int[] b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+k), b[i+k]);[](#l14.899)
- }
- }
- static void test_2ci_inv(int[] a, int[] b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+k), -123);[](#l14.904)
unsafe.putOrderedInt(b, byte_offset(i+k), -103);[](#l14.905)
- }
- }
- static void test_2vi_inv(int[] a, int[] b, int c, int d, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+k), c);[](#l14.910)
unsafe.putOrderedInt(b, byte_offset(i+k), d);[](#l14.911)
- }
- }
- static void test_ci_scl(int[] a, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i*SCALE), -123);[](#l14.916)
- }
- }
- static void test_vi_scl(int[] a, int b, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i*SCALE), b);[](#l14.921)
- }
- }
- static void test_cp_scl(int[] a, int[] b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i*SCALE), b[i*SCALE]);[](#l14.926)
- }
- }
- static void test_2ci_scl(int[] a, int[] b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i*SCALE), -123);[](#l14.931)
unsafe.putOrderedInt(b, byte_offset(i*SCALE), -103);[](#l14.932)
- }
- }
- static void test_2vi_scl(int[] a, int[] b, int c, int d) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i*SCALE), c);[](#l14.937)
unsafe.putOrderedInt(b, byte_offset(i*SCALE), d);[](#l14.938)
- }
- }
- static void test_cp_alndst(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+ALIGN_OFF), b[i]);[](#l14.943)
- }
- }
- static void test_cp_alnsrc(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), b[i+ALIGN_OFF]);[](#l14.948)
- }
- }
- static void test_2ci_aln(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+ALIGN_OFF), -123);[](#l14.953)
unsafe.putOrderedInt(b, byte_offset(i), -103);[](#l14.954)
- }
- }
- static void test_2vi_aln(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), c);[](#l14.959)
unsafe.putOrderedInt(b, byte_offset(i+ALIGN_OFF), d);[](#l14.960)
- }
- }
- static void test_cp_unalndst(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+UNALIGN_OFF), b[i]);[](#l14.965)
- }
- }
- static void test_cp_unalnsrc(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), b[i+UNALIGN_OFF]);[](#l14.970)
- }
- }
- static void test_2ci_unaln(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i+UNALIGN_OFF), -123);[](#l14.975)
unsafe.putOrderedInt(b, byte_offset(i), -103);[](#l14.976)
- }
- }
- static void test_2vi_unaln(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putOrderedInt(a, byte_offset(i), c);[](#l14.981)
unsafe.putOrderedInt(b, byte_offset(i+UNALIGN_OFF), d);[](#l14.982)
- }
- } +
- static int verify(String text, int i, int elem, int val) {
- if (elem != val) {
System.err.println(text + "[" + i + "] = " + elem + " != " + val);[](#l14.988)
return 1;[](#l14.989)
- }
- return 0;
- } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/compiler/8004867/TestIntUnsafeVolatile.java Thu Feb 21 06:29:43 2013 -0800 @@ -0,0 +1,990 @@ +/*
- *
- *
- *
- *
- or visit www.oracle.com if you need additional information or have any
- *
- */ + +/**
- *
- / + +import sun.misc.Unsafe; +import java.lang.reflect.; + +public class TestIntUnsafeVolatile {
- private static final int ARRLEN = 97;
- private static final int ITERS = 11000;
- private static final int OFFSET = 3;
- private static final int SCALE = 2;
- private static final int ALIGN_OFF = 8;
- private static final int UNALIGN_OFF = 5; +
- private static final Unsafe unsafe;
- private static final int BASE;
- static {
- try {
Class c = TestIntUnsafeVolatile.class.getClassLoader().loadClass("sun.misc.Unsafe");[](#l15.52)
Field f = c.getDeclaredField("theUnsafe");[](#l15.53)
f.setAccessible(true);[](#l15.54)
unsafe = (Unsafe)f.get(c);[](#l15.55)
BASE = unsafe.arrayBaseOffset(int[].class);[](#l15.56)
- } catch (Exception e) {
InternalError err = new InternalError();[](#l15.58)
err.initCause(e);[](#l15.59)
throw err;[](#l15.60)
- }
- } +
- public static void main(String args[]) {
- System.out.println("Testing Integer array unsafe volatile operations");
- int errn = test(false);
- if (errn > 0) {
System.err.println("FAILED: " + errn + " errors");[](#l15.68)
System.exit(97);[](#l15.69)
- }
- System.out.println("PASSED");
- } +
- static int test(boolean test_only) {
- int[] a1 = new int[ARRLEN];
- int[] a2 = new int[ARRLEN];
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l15.79)
a2[i] = -1;[](#l15.80)
- }
- System.out.println("Warmup");
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l15.84)
test_vi(a2, 123, -1);[](#l15.85)
test_cp(a1, a2);[](#l15.86)
test_2ci(a1, a2);[](#l15.87)
test_2vi(a1, a2, 123, 103);[](#l15.88)
test_ci_neg(a1, 123);[](#l15.89)
test_vi_neg(a2, 123, 103);[](#l15.90)
test_cp_neg(a1, a2);[](#l15.91)
test_2ci_neg(a1, a2);[](#l15.92)
test_2vi_neg(a1, a2, 123, 103);[](#l15.93)
test_ci_oppos(a1, 123);[](#l15.94)
test_vi_oppos(a2, 123, 103);[](#l15.95)
test_cp_oppos(a1, a2);[](#l15.96)
test_2ci_oppos(a1, a2);[](#l15.97)
test_2vi_oppos(a1, a2, 123, 103);[](#l15.98)
test_ci_off(a1, 123);[](#l15.99)
test_vi_off(a2, 123, 103);[](#l15.100)
test_cp_off(a1, a2);[](#l15.101)
test_2ci_off(a1, a2);[](#l15.102)
test_2vi_off(a1, a2, 123, 103);[](#l15.103)
test_ci_inv(a1, OFFSET, 123);[](#l15.104)
test_vi_inv(a2, 123, OFFSET, 103);[](#l15.105)
test_cp_inv(a1, a2, OFFSET);[](#l15.106)
test_2ci_inv(a1, a2, OFFSET);[](#l15.107)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l15.108)
test_ci_scl(a1, 123);[](#l15.109)
test_vi_scl(a2, 123, 103);[](#l15.110)
test_cp_scl(a1, a2);[](#l15.111)
test_2ci_scl(a1, a2);[](#l15.112)
test_2vi_scl(a1, a2, 123, 103);[](#l15.113)
test_cp_alndst(a1, a2);[](#l15.114)
test_cp_alnsrc(a1, a2);[](#l15.115)
test_2ci_aln(a1, a2);[](#l15.116)
test_2vi_aln(a1, a2, 123, 103);[](#l15.117)
test_cp_unalndst(a1, a2);[](#l15.118)
test_cp_unalnsrc(a1, a2);[](#l15.119)
test_2ci_unaln(a1, a2);[](#l15.120)
test_2vi_unaln(a1, a2, 123, 103);[](#l15.121)
- }
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l15.125)
a2[i] = -1;[](#l15.126)
- }
- // Test and verify results
- System.out.println("Verification");
- int errn = 0;
- {
test_ci(a1);[](#l15.132)
for (int i=0; i<ARRLEN; i++) {[](#l15.133)
errn += verify("test_ci: a1", i, a1[i], -123);[](#l15.134)
}[](#l15.135)
test_vi(a2, 123, -1);[](#l15.136)
for (int i=0; i<ARRLEN; i++) {[](#l15.137)
errn += verify("test_vi: a2", i, a2[i], 123);[](#l15.138)
}[](#l15.139)
test_cp(a1, a2);[](#l15.140)
for (int i=0; i<ARRLEN; i++) {[](#l15.141)
errn += verify("test_cp: a1", i, a1[i], 123);[](#l15.142)
}[](#l15.143)
test_2ci(a1, a2);[](#l15.144)
for (int i=0; i<ARRLEN; i++) {[](#l15.145)
errn += verify("test_2ci: a1", i, a1[i], -123);[](#l15.146)
errn += verify("test_2ci: a2", i, a2[i], -103);[](#l15.147)
}[](#l15.148)
test_2vi(a1, a2, 123, 103);[](#l15.149)
for (int i=0; i<ARRLEN; i++) {[](#l15.150)
errn += verify("test_2vi: a1", i, a1[i], 123);[](#l15.151)
errn += verify("test_2vi: a2", i, a2[i], 103);[](#l15.152)
}[](#l15.153)
// Reset for negative stride[](#l15.154)
for (int i=0; i<ARRLEN; i++) {[](#l15.155)
a1[i] = -1;[](#l15.156)
a2[i] = -1;[](#l15.157)
}[](#l15.158)
test_ci_neg(a1, -1);[](#l15.159)
for (int i=0; i<ARRLEN; i++) {[](#l15.160)
errn += verify("test_ci_neg: a1", i, a1[i], -123);[](#l15.161)
}[](#l15.162)
test_vi_neg(a2, 123, -1);[](#l15.163)
for (int i=0; i<ARRLEN; i++) {[](#l15.164)
errn += verify("test_vi_neg: a2", i, a2[i], 123);[](#l15.165)
}[](#l15.166)
test_cp_neg(a1, a2);[](#l15.167)
for (int i=0; i<ARRLEN; i++) {[](#l15.168)
errn += verify("test_cp_neg: a1", i, a1[i], 123);[](#l15.169)
}[](#l15.170)
test_2ci_neg(a1, a2);[](#l15.171)
for (int i=0; i<ARRLEN; i++) {[](#l15.172)
errn += verify("test_2ci_neg: a1", i, a1[i], -123);[](#l15.173)
errn += verify("test_2ci_neg: a2", i, a2[i], -103);[](#l15.174)
}[](#l15.175)
test_2vi_neg(a1, a2, 123, 103);[](#l15.176)
for (int i=0; i<ARRLEN; i++) {[](#l15.177)
errn += verify("test_2vi_neg: a1", i, a1[i], 123);[](#l15.178)
errn += verify("test_2vi_neg: a2", i, a2[i], 103);[](#l15.179)
}[](#l15.180)
// Reset for opposite stride[](#l15.181)
for (int i=0; i<ARRLEN; i++) {[](#l15.182)
a1[i] = -1;[](#l15.183)
a2[i] = -1;[](#l15.184)
}[](#l15.185)
test_ci_oppos(a1, -1);[](#l15.186)
for (int i=0; i<ARRLEN; i++) {[](#l15.187)
errn += verify("test_ci_oppos: a1", i, a1[i], -123);[](#l15.188)
}[](#l15.189)
test_vi_oppos(a2, 123, -1);[](#l15.190)
for (int i=0; i<ARRLEN; i++) {[](#l15.191)
errn += verify("test_vi_oppos: a2", i, a2[i], 123);[](#l15.192)
}[](#l15.193)
test_cp_oppos(a1, a2);[](#l15.194)
for (int i=0; i<ARRLEN; i++) {[](#l15.195)
errn += verify("test_cp_oppos: a1", i, a1[i], 123);[](#l15.196)
}[](#l15.197)
test_2ci_oppos(a1, a2);[](#l15.198)
for (int i=0; i<ARRLEN; i++) {[](#l15.199)
errn += verify("test_2ci_oppos: a1", i, a1[i], -123);[](#l15.200)
errn += verify("test_2ci_oppos: a2", i, a2[i], -103);[](#l15.201)
}[](#l15.202)
test_2vi_oppos(a1, a2, 123, 103);[](#l15.203)
for (int i=0; i<ARRLEN; i++) {[](#l15.204)
errn += verify("test_2vi_oppos: a1", i, a1[i], 123);[](#l15.205)
errn += verify("test_2vi_oppos: a2", i, a2[i], 103);[](#l15.206)
}[](#l15.207)
// Reset for indexing with offset[](#l15.208)
for (int i=0; i<ARRLEN; i++) {[](#l15.209)
a1[i] = -1;[](#l15.210)
a2[i] = -1;[](#l15.211)
}[](#l15.212)
test_ci_off(a1, -1);[](#l15.213)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.214)
errn += verify("test_ci_off: a1", i, a1[i], -123);[](#l15.215)
}[](#l15.216)
test_vi_off(a2, 123, -1);[](#l15.217)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.218)
errn += verify("test_vi_off: a2", i, a2[i], 123);[](#l15.219)
}[](#l15.220)
test_cp_off(a1, a2);[](#l15.221)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.222)
errn += verify("test_cp_off: a1", i, a1[i], 123);[](#l15.223)
}[](#l15.224)
test_2ci_off(a1, a2);[](#l15.225)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.226)
errn += verify("test_2ci_off: a1", i, a1[i], -123);[](#l15.227)
errn += verify("test_2ci_off: a2", i, a2[i], -103);[](#l15.228)
}[](#l15.229)
test_2vi_off(a1, a2, 123, 103);[](#l15.230)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.231)
errn += verify("test_2vi_off: a1", i, a1[i], 123);[](#l15.232)
errn += verify("test_2vi_off: a2", i, a2[i], 103);[](#l15.233)
}[](#l15.234)
for (int i=0; i<OFFSET; i++) {[](#l15.235)
errn += verify("test_2vi_off: a1", i, a1[i], -1);[](#l15.236)
errn += verify("test_2vi_off: a2", i, a2[i], -1);[](#l15.237)
}[](#l15.238)
// Reset for indexing with invariant offset[](#l15.239)
for (int i=0; i<ARRLEN; i++) {[](#l15.240)
a1[i] = -1;[](#l15.241)
a2[i] = -1;[](#l15.242)
}[](#l15.243)
test_ci_inv(a1, OFFSET, -1);[](#l15.244)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.245)
errn += verify("test_ci_inv: a1", i, a1[i], -123);[](#l15.246)
}[](#l15.247)
test_vi_inv(a2, 123, OFFSET, -1);[](#l15.248)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.249)
errn += verify("test_vi_inv: a2", i, a2[i], 123);[](#l15.250)
}[](#l15.251)
test_cp_inv(a1, a2, OFFSET);[](#l15.252)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.253)
errn += verify("test_cp_inv: a1", i, a1[i], 123);[](#l15.254)
}[](#l15.255)
test_2ci_inv(a1, a2, OFFSET);[](#l15.256)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.257)
errn += verify("test_2ci_inv: a1", i, a1[i], -123);[](#l15.258)
errn += verify("test_2ci_inv: a2", i, a2[i], -103);[](#l15.259)
}[](#l15.260)
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l15.261)
for (int i=OFFSET; i<ARRLEN; i++) {[](#l15.262)
errn += verify("test_2vi_inv: a1", i, a1[i], 123);[](#l15.263)
errn += verify("test_2vi_inv: a2", i, a2[i], 103);[](#l15.264)
}[](#l15.265)
for (int i=0; i<OFFSET; i++) {[](#l15.266)
errn += verify("test_2vi_inv: a1", i, a1[i], -1);[](#l15.267)
errn += verify("test_2vi_inv: a2", i, a2[i], -1);[](#l15.268)
}[](#l15.269)
// Reset for indexing with scale[](#l15.270)
for (int i=0; i<ARRLEN; i++) {[](#l15.271)
a1[i] = -1;[](#l15.272)
a2[i] = -1;[](#l15.273)
}[](#l15.274)
test_ci_scl(a1, -1);[](#l15.275)
for (int i=0; i<ARRLEN; i++) {[](#l15.276)
int val = (i%SCALE != 0) ? -1 : -123;[](#l15.277)
errn += verify("test_ci_scl: a1", i, a1[i], val);[](#l15.278)
}[](#l15.279)
test_vi_scl(a2, 123, -1);[](#l15.280)
for (int i=0; i<ARRLEN; i++) {[](#l15.281)
int val = (i%SCALE != 0) ? -1 : 123;[](#l15.282)
errn += verify("test_vi_scl: a2", i, a2[i], val);[](#l15.283)
}[](#l15.284)
test_cp_scl(a1, a2);[](#l15.285)
for (int i=0; i<ARRLEN; i++) {[](#l15.286)
int val = (i%SCALE != 0) ? -1 : 123;[](#l15.287)
errn += verify("test_cp_scl: a1", i, a1[i], val);[](#l15.288)
}[](#l15.289)
test_2ci_scl(a1, a2);[](#l15.290)
for (int i=0; i<ARRLEN; i++) {[](#l15.291)
if (i%SCALE != 0) {[](#l15.292)
errn += verify("test_2ci_scl: a1", i, a1[i], -1);[](#l15.293)
} else if (i*SCALE < ARRLEN) {[](#l15.294)
errn += verify("test_2ci_scl: a1", i*SCALE, a1[i*SCALE], -123);[](#l15.295)
}[](#l15.296)
if (i%SCALE != 0) {[](#l15.297)
errn += verify("test_2ci_scl: a2", i, a2[i], -1);[](#l15.298)
} else if (i*SCALE < ARRLEN) {[](#l15.299)
errn += verify("test_2ci_scl: a2", i*SCALE, a2[i*SCALE], -103);[](#l15.300)
}[](#l15.301)
}[](#l15.302)
test_2vi_scl(a1, a2, 123, 103);[](#l15.303)
for (int i=0; i<ARRLEN; i++) {[](#l15.304)
if (i%SCALE != 0) {[](#l15.305)
errn += verify("test_2vi_scl: a1", i, a1[i], -1);[](#l15.306)
} else if (i*SCALE < ARRLEN) {[](#l15.307)
errn += verify("test_2vi_scl: a1", i*SCALE, a1[i*SCALE], 123);[](#l15.308)
}[](#l15.309)
if (i%SCALE != 0) {[](#l15.310)
errn += verify("test_2vi_scl: a2", i, a2[i], -1);[](#l15.311)
} else if (i*SCALE < ARRLEN) {[](#l15.312)
errn += verify("test_2vi_scl: a2", i*SCALE, a2[i*SCALE], 103);[](#l15.313)
}[](#l15.314)
}[](#l15.315)
// Reset for 2 arrays with relative aligned offset[](#l15.316)
for (int i=0; i<ARRLEN; i++) {[](#l15.317)
a1[i] = -1;[](#l15.318)
a2[i] = -1;[](#l15.319)
}[](#l15.320)
test_vi(a2, 123, -1);[](#l15.321)
test_cp_alndst(a1, a2);[](#l15.322)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.323)
errn += verify("test_cp_alndst: a1", i, a1[i], -1);[](#l15.324)
}[](#l15.325)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l15.326)
errn += verify("test_cp_alndst: a1", i, a1[i], 123);[](#l15.327)
}[](#l15.328)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.329)
a1[i] = 123;[](#l15.330)
}[](#l15.331)
test_vi(a2, -123, 123);[](#l15.332)
test_cp_alnsrc(a1, a2);[](#l15.333)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l15.334)
errn += verify("test_cp_alnsrc: a1", i, a1[i], -123);[](#l15.335)
}[](#l15.336)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l15.337)
errn += verify("test_cp_alnsrc: a1", i, a1[i], 123);[](#l15.338)
}[](#l15.339)
for (int i=0; i<ARRLEN; i++) {[](#l15.340)
a1[i] = -1;[](#l15.341)
a2[i] = -1;[](#l15.342)
}[](#l15.343)
test_2ci_aln(a1, a2);[](#l15.344)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.345)
errn += verify("test_2ci_aln: a1", i, a1[i], -1);[](#l15.346)
}[](#l15.347)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l15.348)
errn += verify("test_2ci_aln: a1", i, a1[i], -123);[](#l15.349)
}[](#l15.350)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l15.351)
errn += verify("test_2ci_aln: a2", i, a2[i], -103);[](#l15.352)
}[](#l15.353)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l15.354)
errn += verify("test_2ci_aln: a2", i, a2[i], -1);[](#l15.355)
}[](#l15.356)
for (int i=0; i<ARRLEN; i++) {[](#l15.357)
a1[i] = -1;[](#l15.358)
a2[i] = -1;[](#l15.359)
}[](#l15.360)
test_2vi_aln(a1, a2, 123, 103);[](#l15.361)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l15.362)
errn += verify("test_2vi_aln: a1", i, a1[i], 123);[](#l15.363)
}[](#l15.364)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l15.365)
errn += verify("test_2vi_aln: a1", i, a1[i], -1);[](#l15.366)
}[](#l15.367)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.368)
errn += verify("test_2vi_aln: a2", i, a2[i], -1);[](#l15.369)
}[](#l15.370)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l15.371)
errn += verify("test_2vi_aln: a2", i, a2[i], 103);[](#l15.372)
}[](#l15.373)
// Reset for 2 arrays with relative unaligned offset[](#l15.375)
for (int i=0; i<ARRLEN; i++) {[](#l15.376)
a1[i] = -1;[](#l15.377)
a2[i] = -1;[](#l15.378)
}[](#l15.379)
test_vi(a2, 123, -1);[](#l15.380)
test_cp_unalndst(a1, a2);[](#l15.381)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l15.382)
errn += verify("test_cp_unalndst: a1", i, a1[i], -1);[](#l15.383)
}[](#l15.384)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.385)
errn += verify("test_cp_unalndst: a1", i, a1[i], 123);[](#l15.386)
}[](#l15.387)
test_vi(a2, -123, 123);[](#l15.388)
test_cp_unalnsrc(a1, a2);[](#l15.389)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l15.390)
errn += verify("test_cp_unalnsrc: a1", i, a1[i], -123);[](#l15.391)
}[](#l15.392)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.393)
errn += verify("test_cp_unalnsrc: a1", i, a1[i], 123);[](#l15.394)
}[](#l15.395)
for (int i=0; i<ARRLEN; i++) {[](#l15.396)
a1[i] = -1;[](#l15.397)
a2[i] = -1;[](#l15.398)
}[](#l15.399)
test_2ci_unaln(a1, a2);[](#l15.400)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l15.401)
errn += verify("test_2ci_unaln: a1", i, a1[i], -1);[](#l15.402)
}[](#l15.403)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.404)
errn += verify("test_2ci_unaln: a1", i, a1[i], -123);[](#l15.405)
}[](#l15.406)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l15.407)
errn += verify("test_2ci_unaln: a2", i, a2[i], -103);[](#l15.408)
}[](#l15.409)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.410)
errn += verify("test_2ci_unaln: a2", i, a2[i], -1);[](#l15.411)
}[](#l15.412)
for (int i=0; i<ARRLEN; i++) {[](#l15.413)
a1[i] = -1;[](#l15.414)
a2[i] = -1;[](#l15.415)
}[](#l15.416)
test_2vi_unaln(a1, a2, 123, 103);[](#l15.417)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l15.418)
errn += verify("test_2vi_unaln: a1", i, a1[i], 123);[](#l15.419)
}[](#l15.420)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.421)
errn += verify("test_2vi_unaln: a1", i, a1[i], -1);[](#l15.422)
}[](#l15.423)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l15.424)
errn += verify("test_2vi_unaln: a2", i, a2[i], -1);[](#l15.425)
}[](#l15.426)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.427)
errn += verify("test_2vi_unaln: a2", i, a2[i], 103);[](#l15.428)
}[](#l15.429)
// Reset for aligned overlap initialization[](#l15.431)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.432)
a1[i] = i;[](#l15.433)
}[](#l15.434)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l15.435)
a1[i] = -1;[](#l15.436)
}[](#l15.437)
test_cp_alndst(a1, a1);[](#l15.438)
for (int i=0; i<ARRLEN; i++) {[](#l15.439)
int v = i%ALIGN_OFF;[](#l15.440)
errn += verify("test_cp_alndst_overlap: a1", i, a1[i], v);[](#l15.441)
}[](#l15.442)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.443)
a1[i+ALIGN_OFF] = -1;[](#l15.444)
}[](#l15.445)
test_cp_alnsrc(a1, a1);[](#l15.446)
for (int i=0; i<ALIGN_OFF; i++) {[](#l15.447)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], -1);[](#l15.448)
}[](#l15.449)
for (int i=ALIGN_OFF; i<ARRLEN; i++) {[](#l15.450)
int v = i%ALIGN_OFF;[](#l15.451)
errn += verify("test_cp_alnsrc_overlap: a1", i, a1[i], v);[](#l15.452)
}[](#l15.453)
for (int i=0; i<ARRLEN; i++) {[](#l15.454)
a1[i] = -1;[](#l15.455)
}[](#l15.456)
test_2ci_aln(a1, a1);[](#l15.457)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l15.458)
errn += verify("test_2ci_aln_overlap: a1", i, a1[i], -103);[](#l15.459)
}[](#l15.460)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l15.461)
errn += verify("test_2ci_aln_overlap: a1", i, a1[i], -123);[](#l15.462)
}[](#l15.463)
for (int i=0; i<ARRLEN; i++) {[](#l15.464)
a1[i] = -1;[](#l15.465)
}[](#l15.466)
test_2vi_aln(a1, a1, 123, 103);[](#l15.467)
for (int i=0; i<ARRLEN-ALIGN_OFF; i++) {[](#l15.468)
errn += verify("test_2vi_aln_overlap: a1", i, a1[i], 123);[](#l15.469)
}[](#l15.470)
for (int i=ARRLEN-ALIGN_OFF; i<ARRLEN; i++) {[](#l15.471)
errn += verify("test_2vi_aln_overlap: a1", i, a1[i], 103);[](#l15.472)
}[](#l15.473)
// Reset for unaligned overlap initialization[](#l15.475)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l15.476)
a1[i] = i;[](#l15.477)
}[](#l15.478)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.479)
a1[i] = -1;[](#l15.480)
}[](#l15.481)
test_cp_unalndst(a1, a1);[](#l15.482)
for (int i=0; i<ARRLEN; i++) {[](#l15.483)
int v = i%UNALIGN_OFF;[](#l15.484)
errn += verify("test_cp_unalndst_overlap: a1", i, a1[i], v);[](#l15.485)
}[](#l15.486)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l15.487)
a1[i+UNALIGN_OFF] = -1;[](#l15.488)
}[](#l15.489)
test_cp_unalnsrc(a1, a1);[](#l15.490)
for (int i=0; i<UNALIGN_OFF; i++) {[](#l15.491)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], -1);[](#l15.492)
}[](#l15.493)
for (int i=UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.494)
int v = i%UNALIGN_OFF;[](#l15.495)
errn += verify("test_cp_unalnsrc_overlap: a1", i, a1[i], v);[](#l15.496)
}[](#l15.497)
for (int i=0; i<ARRLEN; i++) {[](#l15.498)
a1[i] = -1;[](#l15.499)
}[](#l15.500)
test_2ci_unaln(a1, a1);[](#l15.501)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l15.502)
errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], -103);[](#l15.503)
}[](#l15.504)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.505)
errn += verify("test_2ci_unaln_overlap: a1", i, a1[i], -123);[](#l15.506)
}[](#l15.507)
for (int i=0; i<ARRLEN; i++) {[](#l15.508)
a1[i] = -1;[](#l15.509)
}[](#l15.510)
test_2vi_unaln(a1, a1, 123, 103);[](#l15.511)
for (int i=0; i<ARRLEN-UNALIGN_OFF; i++) {[](#l15.512)
errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], 123);[](#l15.513)
}[](#l15.514)
for (int i=ARRLEN-UNALIGN_OFF; i<ARRLEN; i++) {[](#l15.515)
errn += verify("test_2vi_unaln_overlap: a1", i, a1[i], 103);[](#l15.516)
}[](#l15.517)
- // Initialize
- for (int i=0; i<ARRLEN; i++) {
a1[i] = -1;[](#l15.526)
a2[i] = -1;[](#l15.527)
- }
- System.out.println("Time");
- long start, end;
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci(a1);[](#l15.533)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi(a2, 123, -1);[](#l15.539)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp(a1, a2);[](#l15.545)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci(a1, a2);[](#l15.551)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi(a1, a2, 123, 103);[](#l15.557)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_neg(a1, 123);[](#l15.564)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_neg(a2, 123, 103);[](#l15.570)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_neg(a1, a2);[](#l15.576)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_neg(a1, a2);[](#l15.582)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_neg(a1, a2, 123, 103);[](#l15.588)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_neg: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_oppos(a1, 123);[](#l15.595)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_oppos(a2, 123, 103);[](#l15.601)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_oppos(a1, a2);[](#l15.607)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_oppos(a1, a2);[](#l15.613)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_oppos(a1, a2, 123, 103);[](#l15.619)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_oppos: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_off(a1, 123);[](#l15.626)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_off(a2, 123, 103);[](#l15.632)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_off(a1, a2);[](#l15.638)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_off(a1, a2);[](#l15.644)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_off(a1, a2, 123, 103);[](#l15.650)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_off: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_inv(a1, OFFSET, 123);[](#l15.657)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_inv(a2, 123, OFFSET, 103);[](#l15.663)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_inv(a1, a2, OFFSET);[](#l15.669)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_inv(a1, a2, OFFSET);[](#l15.675)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_inv(a1, a2, 123, 103, OFFSET);[](#l15.681)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_inv: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_ci_scl(a1, 123);[](#l15.688)
- }
- end = System.currentTimeMillis();
- System.out.println("test_ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_vi_scl(a2, 123, 103);[](#l15.694)
- }
- end = System.currentTimeMillis();
- System.out.println("test_vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_scl(a1, a2);[](#l15.700)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_scl(a1, a2);[](#l15.706)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_scl(a1, a2, 123, 103);[](#l15.712)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_scl: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alndst(a1, a2);[](#l15.719)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_alnsrc(a1, a2);[](#l15.725)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_alnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_aln(a1, a2);[](#l15.731)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_aln(a1, a2, 123, 103);[](#l15.737)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_aln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalndst(a1, a2);[](#l15.744)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalndst: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_cp_unalnsrc(a1, a2);[](#l15.750)
- }
- end = System.currentTimeMillis();
- System.out.println("test_cp_unalnsrc: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2ci_unaln(a1, a2);[](#l15.756)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2ci_unaln: " + (end - start));
- start = System.currentTimeMillis();
- for (int i=0; i<ITERS; i++) {
test_2vi_unaln(a1, a2, 123, 103);[](#l15.762)
- }
- end = System.currentTimeMillis();
- System.out.println("test_2vi_unaln: " + (end - start));
- return errn;
- } +
- private final static long byte_offset(int i) {
- return ((long)i << 2) + BASE;
- } +
- static void test_ci(int[] a) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), -123);[](#l15.776)
- }
- }
- static void test_vi(int[] a, int b, int old) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), b);[](#l15.781)
- }
- }
- static void test_cp(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), b[i]);[](#l15.786)
- }
- }
- static void test_2ci(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), -123);[](#l15.791)
unsafe.putIntVolatile(b, byte_offset(i), -103);[](#l15.792)
- }
- }
- static void test_2vi(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), c);[](#l15.797)
unsafe.putIntVolatile(b, byte_offset(i), d);[](#l15.798)
- }
- }
- static void test_ci_neg(int[] a, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(i), -123);[](#l15.803)
- }
- }
- static void test_vi_neg(int[] a, int b, int old) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(i), b);[](#l15.808)
- }
- }
- static void test_cp_neg(int[] a, int[] b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(i), b[i]);[](#l15.813)
- }
- }
- static void test_2ci_neg(int[] a, int[] b) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(i), -123);[](#l15.818)
unsafe.putIntVolatile(b, byte_offset(i), -103);[](#l15.819)
- }
- }
- static void test_2vi_neg(int[] a, int[] b, int c, int d) {
- for (int i = ARRLEN-1; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(i), c);[](#l15.824)
unsafe.putIntVolatile(b, byte_offset(i), d);[](#l15.825)
- }
- }
- static void test_ci_oppos(int[] a, int old) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(limit-i), -123);[](#l15.831)
- }
- }
- static void test_vi_oppos(int[] a, int b, int old) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(limit-i), b);[](#l15.837)
- }
- }
- static void test_cp_oppos(int[] a, int[] b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), b[limit-i]);[](#l15.843)
- }
- }
- static void test_2ci_oppos(int[] a, int[] b) {
- int limit = ARRLEN-1;
- for (int i = 0; i < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(limit-i), -123);[](#l15.849)
unsafe.putIntVolatile(b, byte_offset(i), -103);[](#l15.850)
- }
- }
- static void test_2vi_oppos(int[] a, int[] b, int c, int d) {
- int limit = ARRLEN-1;
- for (int i = limit; i >= 0; i-=1) {
unsafe.putIntVolatile(a, byte_offset(i), c);[](#l15.856)
unsafe.putIntVolatile(b, byte_offset(limit-i), d);[](#l15.857)
- }
- }
- static void test_ci_off(int[] a, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+OFFSET), -123);[](#l15.862)
- }
- }
- static void test_vi_off(int[] a, int b, int old) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+OFFSET), b);[](#l15.867)
- }
- }
- static void test_cp_off(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+OFFSET), b[i+OFFSET]);[](#l15.872)
- }
- }
- static void test_2ci_off(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+OFFSET), -123);[](#l15.877)
unsafe.putIntVolatile(b, byte_offset(i+OFFSET), -103);[](#l15.878)
- }
- }
- static void test_2vi_off(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-OFFSET; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+OFFSET), c);[](#l15.883)
unsafe.putIntVolatile(b, byte_offset(i+OFFSET), d);[](#l15.884)
- }
- }
- static void test_ci_inv(int[] a, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+k), -123);[](#l15.889)
- }
- }
- static void test_vi_inv(int[] a, int b, int k, int old) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+k), b);[](#l15.894)
- }
- }
- static void test_cp_inv(int[] a, int[] b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+k), b[i+k]);[](#l15.899)
- }
- }
- static void test_2ci_inv(int[] a, int[] b, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+k), -123);[](#l15.904)
unsafe.putIntVolatile(b, byte_offset(i+k), -103);[](#l15.905)
- }
- }
- static void test_2vi_inv(int[] a, int[] b, int c, int d, int k) {
- for (int i = 0; i < ARRLEN-k; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+k), c);[](#l15.910)
unsafe.putIntVolatile(b, byte_offset(i+k), d);[](#l15.911)
- }
- }
- static void test_ci_scl(int[] a, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i*SCALE), -123);[](#l15.916)
- }
- }
- static void test_vi_scl(int[] a, int b, int old) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i*SCALE), b);[](#l15.921)
- }
- }
- static void test_cp_scl(int[] a, int[] b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i*SCALE), b[i*SCALE]);[](#l15.926)
- }
- }
- static void test_2ci_scl(int[] a, int[] b) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i*SCALE), -123);[](#l15.931)
unsafe.putIntVolatile(b, byte_offset(i*SCALE), -103);[](#l15.932)
- }
- }
- static void test_2vi_scl(int[] a, int[] b, int c, int d) {
- for (int i = 0; i*SCALE < ARRLEN; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i*SCALE), c);[](#l15.937)
unsafe.putIntVolatile(b, byte_offset(i*SCALE), d);[](#l15.938)
- }
- }
- static void test_cp_alndst(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+ALIGN_OFF), b[i]);[](#l15.943)
- }
- }
- static void test_cp_alnsrc(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), b[i+ALIGN_OFF]);[](#l15.948)
- }
- }
- static void test_2ci_aln(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+ALIGN_OFF), -123);[](#l15.953)
unsafe.putIntVolatile(b, byte_offset(i), -103);[](#l15.954)
- }
- }
- static void test_2vi_aln(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-ALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), c);[](#l15.959)
unsafe.putIntVolatile(b, byte_offset(i+ALIGN_OFF), d);[](#l15.960)
- }
- }
- static void test_cp_unalndst(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+UNALIGN_OFF), b[i]);[](#l15.965)
- }
- }
- static void test_cp_unalnsrc(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), b[i+UNALIGN_OFF]);[](#l15.970)
- }
- }
- static void test_2ci_unaln(int[] a, int[] b) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i+UNALIGN_OFF), -123);[](#l15.975)
unsafe.putIntVolatile(b, byte_offset(i), -103);[](#l15.976)
- }
- }
- static void test_2vi_unaln(int[] a, int[] b, int c, int d) {
- for (int i = 0; i < ARRLEN-UNALIGN_OFF; i+=1) {
unsafe.putIntVolatile(a, byte_offset(i), c);[](#l15.981)
unsafe.putIntVolatile(b, byte_offset(i+UNALIGN_OFF), d);[](#l15.982)
- }
- } +
- static int verify(String text, int i, int elem, int val) {
- if (elem != val) {
System.err.println(text + "[" + i + "] = " + elem + " != " + val);[](#l15.988)
return 1;[](#l15.989)
- }
- return 0;
- } +}