From da26b84bd0cf996badc6c1c876f5a363158ca8d4 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Thu, 23 Aug 2018 19:23:13 +0000 Subject: [WebAssembly] Prioritize splats over v128.consts Summary: Splats are fewer bytes than v128.consts, so use them when either could apply. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D51179 llvm-svn: 340569 --- llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td | 2 ++ 1 file changed, 2 insertions(+) (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td') diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td index 07d3dbc8abb..2ea5c8d97a0 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td +++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td @@ -85,6 +85,8 @@ def splat16 : PatFrag<(ops node:$x), (build_vector node:$x, node:$x, node:$x, node:$x)>; multiclass Splat simdop> { + // Prefer splats over v128.const for const splats (65 is lowest that works) + let AddedComplexity = 65 in defm SPLAT_#vec_t : SIMD_I<(outs V128:$dst), (ins reg_t:$x), (outs), (ins), [(set (vec_t V128:$dst), (splat_pat reg_t:$x))], vec#".splat\t$dst, $x", vec#".splat", simdop>; -- cgit v1.2.3