From b486289ab8e1a304cc585f7f94b3375e08ae4665 Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Wed, 18 Dec 2019 12:50:12 -0800 Subject: [PATCH] Translate Wasm's V128AndNot to CLIF's band_not (#1297) The CLIF is already implemented for x86 SIMD. --- cranelift/wasm/src/code_translator.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cranelift/wasm/src/code_translator.rs b/cranelift/wasm/src/code_translator.rs index e16b187cb5..e155594093 100644 --- a/cranelift/wasm/src/code_translator.rs +++ b/cranelift/wasm/src/code_translator.rs @@ -1189,6 +1189,10 @@ pub fn translate_operator( let (a, b) = pop2_with_bitcast(state, type_of(op), builder); state.push1(builder.ins().imul(a, b)) } + Operator::V128AndNot => { + let (a, b) = pop2_with_bitcast(state, type_of(op), builder); + state.push1(builder.ins().band_not(a, b)) + } Operator::V128Not => { let a = state.pop1(); state.push1(builder.ins().bnot(a)); @@ -1370,8 +1374,7 @@ pub fn translate_operator( | Operator::I64x2Load32x2S { .. } | Operator::I64x2Load32x2U { .. } | Operator::I8x16RoundingAverageU { .. } - | Operator::I16x8RoundingAverageU { .. } - | Operator::V128AndNot { .. } => { + | Operator::I16x8RoundingAverageU { .. } => { return Err(wasm_unsupported!("proposed SIMD operator {:?}", op)); } };