From 396eba523580ee75d72df042cb64f8f840da61aa Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Mon, 9 Dec 2019 10:05:47 -0800 Subject: [PATCH] Bitcast values incoming to `vall_true` and `vany_true` before use in Wasm translation (#1275) --- cranelift/wasm/src/code_translator.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cranelift/wasm/src/code_translator.rs b/cranelift/wasm/src/code_translator.rs index c0d1218ccf..41f5726cd6 100644 --- a/cranelift/wasm/src/code_translator.rs +++ b/cranelift/wasm/src/code_translator.rs @@ -1226,14 +1226,16 @@ pub fn translate_operator( | Operator::I16x8AnyTrue | Operator::I32x4AnyTrue | Operator::I64x2AnyTrue => { - let bool_result = builder.ins().vany_true(state.pop1()); + let a = pop1_with_bitcast(state, type_of(op), builder); + let bool_result = builder.ins().vany_true(a); state.push1(builder.ins().bint(I32, bool_result)) } Operator::I8x16AllTrue | Operator::I16x8AllTrue | Operator::I32x4AllTrue | Operator::I64x2AllTrue => { - let bool_result = builder.ins().vall_true(state.pop1()); + let a = pop1_with_bitcast(state, type_of(op), builder); + let bool_result = builder.ins().vall_true(a); state.push1(builder.ins().bint(I32, bool_result)) } Operator::I8x16Eq | Operator::I16x8Eq | Operator::I32x4Eq => {