summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/passes/pick-load-signs_all-features.txt24
-rw-r--r--test/passes/pick-load-signs_all-features.wast23
2 files changed, 47 insertions, 0 deletions
diff --git a/test/passes/pick-load-signs_all-features.txt b/test/passes/pick-load-signs_all-features.txt
new file mode 100644
index 000000000..4b08c75de
--- /dev/null
+++ b/test/passes/pick-load-signs_all-features.txt
@@ -0,0 +1,24 @@
+(module
+ (type $none_=>_i32 (func (result i32)))
+ (memory $0 (shared 16 16))
+ (func $atomics-are-always-unsigned (result i32)
+ (local $0 i32)
+ (drop
+ (block $block (result i32)
+ (local.set $0
+ (i32.atomic.load16_u
+ (i32.const 27)
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.const -65)
+ )
+)
diff --git a/test/passes/pick-load-signs_all-features.wast b/test/passes/pick-load-signs_all-features.wast
new file mode 100644
index 000000000..20a77eae4
--- /dev/null
+++ b/test/passes/pick-load-signs_all-features.wast
@@ -0,0 +1,23 @@
+(module
+ (memory $0 (shared 16 16))
+ (func $atomics-are-always-unsigned (result i32)
+ (local $0 i32)
+ (drop
+ (block (result i32)
+ (local.set $0
+ (i32.atomic.load16_u ;; an atomic load cannot become signed
+ (i32.const 27)
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (local.get $0)
+ (i32.const 16)
+ )
+ (i32.const 16)
+ )
+ )
+ )
+ (i32.const -65)
+ )
+)