summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/threads.asm.js3
-rw-r--r--test/threads.fromasm14
-rw-r--r--test/threads.fromasm.clamp14
-rw-r--r--test/threads.fromasm.clamp.no-opts14
-rw-r--r--test/threads.fromasm.imprecise14
-rw-r--r--test/threads.fromasm.imprecise.no-opts14
-rw-r--r--test/threads.fromasm.no-opts14
7 files changed, 78 insertions, 9 deletions
diff --git a/test/threads.asm.js b/test/threads.asm.js
index 1253e8c42..bedeb7a37 100644
--- a/test/threads.asm.js
+++ b/test/threads.asm.js
@@ -137,6 +137,9 @@ Module["asm"] = (function(global, env, buffer) {
$temp = (Atomics_xor(HEAPU32, 1024, 0)|0);
$temp = (Atomics_xor(HEAP16, 1024, 0)|0);
$temp = (Atomics_xor(HEAPU8, 1024, 0)|0);
+ // corner cases
+ $temp = (Atomics_compareExchange(HEAP8, $temp | 0, 1, 2)|0);
+ $temp = (Atomics_compareExchange(HEAP8, $temp >> 2, 1, 2)|0);
}
return { test: test };
diff --git a/test/threads.fromasm b/test/threads.fromasm
index 47112c8f5..25e26135c 100644
--- a/test/threads.fromasm
+++ b/test/threads.fromasm
@@ -56,9 +56,17 @@
)
)
(drop
- (i32.atomic.rmw8_u.xor
- (i32.const 1024)
- (i32.const 0)
+ (i32.atomic.rmw8_u.cmpxchg
+ (i32.atomic.rmw8_u.cmpxchg
+ (i32.atomic.rmw8_u.xor
+ (i32.const 1024)
+ (i32.const 0)
+ )
+ (i32.const 1)
+ (i32.const 2)
+ )
+ (i32.const 1)
+ (i32.const 2)
)
)
)
diff --git a/test/threads.fromasm.clamp b/test/threads.fromasm.clamp
index 47112c8f5..25e26135c 100644
--- a/test/threads.fromasm.clamp
+++ b/test/threads.fromasm.clamp
@@ -56,9 +56,17 @@
)
)
(drop
- (i32.atomic.rmw8_u.xor
- (i32.const 1024)
- (i32.const 0)
+ (i32.atomic.rmw8_u.cmpxchg
+ (i32.atomic.rmw8_u.cmpxchg
+ (i32.atomic.rmw8_u.xor
+ (i32.const 1024)
+ (i32.const 0)
+ )
+ (i32.const 1)
+ (i32.const 2)
+ )
+ (i32.const 1)
+ (i32.const 2)
)
)
)
diff --git a/test/threads.fromasm.clamp.no-opts b/test/threads.fromasm.clamp.no-opts
index 78538c9c9..d15b56541 100644
--- a/test/threads.fromasm.clamp.no-opts
+++ b/test/threads.fromasm.clamp.no-opts
@@ -118,5 +118,19 @@
(i32.const 0)
)
)
+ (set_local $$temp
+ (i32.atomic.rmw8_u.cmpxchg
+ (get_local $$temp)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (set_local $$temp
+ (i32.atomic.rmw8_u.cmpxchg
+ (get_local $$temp)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
)
)
diff --git a/test/threads.fromasm.imprecise b/test/threads.fromasm.imprecise
index 66c558ffe..eec93d750 100644
--- a/test/threads.fromasm.imprecise
+++ b/test/threads.fromasm.imprecise
@@ -54,9 +54,17 @@
)
)
(drop
- (i32.atomic.rmw8_u.xor
- (i32.const 1024)
- (i32.const 0)
+ (i32.atomic.rmw8_u.cmpxchg
+ (i32.atomic.rmw8_u.cmpxchg
+ (i32.atomic.rmw8_u.xor
+ (i32.const 1024)
+ (i32.const 0)
+ )
+ (i32.const 1)
+ (i32.const 2)
+ )
+ (i32.const 1)
+ (i32.const 2)
)
)
)
diff --git a/test/threads.fromasm.imprecise.no-opts b/test/threads.fromasm.imprecise.no-opts
index 78538c9c9..d15b56541 100644
--- a/test/threads.fromasm.imprecise.no-opts
+++ b/test/threads.fromasm.imprecise.no-opts
@@ -118,5 +118,19 @@
(i32.const 0)
)
)
+ (set_local $$temp
+ (i32.atomic.rmw8_u.cmpxchg
+ (get_local $$temp)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (set_local $$temp
+ (i32.atomic.rmw8_u.cmpxchg
+ (get_local $$temp)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
)
)
diff --git a/test/threads.fromasm.no-opts b/test/threads.fromasm.no-opts
index 78538c9c9..d15b56541 100644
--- a/test/threads.fromasm.no-opts
+++ b/test/threads.fromasm.no-opts
@@ -118,5 +118,19 @@
(i32.const 0)
)
)
+ (set_local $$temp
+ (i32.atomic.rmw8_u.cmpxchg
+ (get_local $$temp)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (set_local $$temp
+ (i32.atomic.rmw8_u.cmpxchg
+ (get_local $$temp)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
)
)