From 0f41b0708384c1f5d85304d5ed94d9edd57d38c9 Mon Sep 17 00:00:00 2001 From: Thomas Lively <7121787+tlively@users.noreply.github.com> Date: Wed, 19 Dec 2018 19:22:09 -0800 Subject: Do not precompute v128 expressions (#1839) Without this change, sequences like `i32.const 0, i32x4.splat` will get precomputed to v128.const ops, which are much larger and also not implemented in V8 yet. Until we have SIMD-aware optimization passes or at least engine support for v128.const, do not perform such transformations. --- test/passes/precompute.txt | 6 ++++++ test/passes/precompute.wast | 5 +++++ 2 files changed, 11 insertions(+) (limited to 'test') diff --git a/test/passes/precompute.txt b/test/passes/precompute.txt index 1c060fbef..b199da603 100644 --- a/test/passes/precompute.txt +++ b/test/passes/precompute.txt @@ -3,6 +3,7 @@ (type $1 (func (result i32))) (type $2 (func)) (type $3 (func (result f64))) + (type $4 (func (result v128))) (memory $0 0) (global $global i32 (i32.const 1)) (global $global-mut (mut i32) (i32.const 2)) @@ -211,4 +212,9 @@ (i32.const 2) ) ) + (func $no-simd-precompute (; 11 ;) (type $4) (result v128) + (i32x4.splat + (i32.const 0) + ) + ) ) diff --git a/test/passes/precompute.wast b/test/passes/precompute.wast index 2c87d3706..54c8cf6d2 100644 --- a/test/passes/precompute.wast +++ b/test/passes/precompute.wast @@ -306,4 +306,9 @@ ) ) ) + (func $no-simd-precompute (result v128) + (i32x4.splat + (i32.const 0) + ) + ) ) -- cgit v1.2.3