summaryrefslogtreecommitdiff
path: root/test/lit/passes/optimize-stack-ir.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/passes/optimize-stack-ir.wast')
-rw-r--r--test/lit/passes/optimize-stack-ir.wast29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/lit/passes/optimize-stack-ir.wast b/test/lit/passes/optimize-stack-ir.wast
index 12981df9a..d937f7257 100644
--- a/test/lit/passes/optimize-stack-ir.wast
+++ b/test/lit/passes/optimize-stack-ir.wast
@@ -1398,4 +1398,33 @@
)
)
)
+
+ ;; CHECK: (func $tuple-local2stack (type $FUNCSIG$v)
+ ;; CHECK-NEXT: (local $pair (f32 i32))
+ ;; CHECK-NEXT: (local $f32 f32)
+ ;; CHECK-NEXT: f32.const 0
+ ;; CHECK-NEXT: i32.const 0
+ ;; CHECK-NEXT: tuple.make
+ ;; CHECK-NEXT: local.set $pair
+ ;; CHECK-NEXT: local.get $pair
+ ;; CHECK-NEXT: tuple.extract 0
+ ;; CHECK-NEXT: local.set $f32
+ ;; CHECK-NEXT: )
+ (func $tuple-local2stack
+ (local $pair (f32 i32))
+ (local $f32 f32)
+ ;; We should not optimize out this get-set pair in Stack IR since we can do
+ ;; better in the binary writer.
+ (local.set $pair
+ (tuple.make
+ (f32.const 0)
+ (i32.const 0)
+ )
+ )
+ (local.set $f32
+ (tuple.extract 0
+ (local.get $pair)
+ )
+ )
+ )
)