Translate WASM iTxN.ne to CLIF

This commit is contained in:
Andrew Brown
2019-10-23 15:42:26 -07:00
parent e3a20d67b2
commit 3a94e8d46a

View File

@@ -1170,8 +1170,13 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
let bitcast_b = optionally_bitcast_vector(b, type_of(op), builder); let bitcast_b = optionally_bitcast_vector(b, type_of(op), builder);
state.push1(builder.ins().icmp(IntCC::Equal, bitcast_a, bitcast_b)) state.push1(builder.ins().icmp(IntCC::Equal, bitcast_a, bitcast_b))
} }
Operator::I8x16Ne Operator::I8x16Ne | Operator::I16x8Ne | Operator::I32x4Ne => {
| Operator::I8x16LtS let (a, b) = state.pop2();
let bitcast_a = optionally_bitcast_vector(a, type_of(op), builder);
let bitcast_b = optionally_bitcast_vector(b, type_of(op), builder);
state.push1(builder.ins().icmp(IntCC::NotEqual, bitcast_a, bitcast_b))
}
Operator::I8x16LtS
| Operator::I8x16LtU | Operator::I8x16LtU
| Operator::I8x16GtS | Operator::I8x16GtS
| Operator::I8x16GtU | Operator::I8x16GtU
@@ -1179,7 +1184,6 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
| Operator::I8x16LeU | Operator::I8x16LeU
| Operator::I8x16GeS | Operator::I8x16GeS
| Operator::I8x16GeU | Operator::I8x16GeU
| Operator::I16x8Ne
| Operator::I16x8LtS | Operator::I16x8LtS
| Operator::I16x8LtU | Operator::I16x8LtU
| Operator::I16x8GtS | Operator::I16x8GtS
@@ -1188,7 +1192,6 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
| Operator::I16x8LeU | Operator::I16x8LeU
| Operator::I16x8GeS | Operator::I16x8GeS
| Operator::I16x8GeU | Operator::I16x8GeU
| Operator::I32x4Ne
| Operator::I32x4LtS | Operator::I32x4LtS
| Operator::I32x4LtU | Operator::I32x4LtU
| Operator::I32x4GtS | Operator::I32x4GtS