x64: add support for packed promote and demote (#2783)
* Add support for x64 packed promote low * Add support for x64 packed floating point demote * Update vector promote low and demote by adding constraints Also does some renaming and minor refactoring
This commit is contained in:
@@ -1779,6 +1779,14 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
|
||||
let a = pop1_with_bitcast(state, I32X4, builder);
|
||||
state.push1(builder.ins().fcvt_low_from_sint(F64X2, a));
|
||||
}
|
||||
Operator::F64x2PromoteLowF32x4 => {
|
||||
let a = pop1_with_bitcast(state, F32X4, builder);
|
||||
state.push1(builder.ins().fvpromote_low(a));
|
||||
}
|
||||
Operator::F32x4DemoteF64x2Zero => {
|
||||
let a = pop1_with_bitcast(state, F64X2, builder);
|
||||
state.push1(builder.ins().fvdemote(a));
|
||||
}
|
||||
Operator::I32x4TruncSatF32x4S => {
|
||||
let a = pop1_with_bitcast(state, F32X4, builder);
|
||||
state.push1(builder.ins().fcvt_to_sint_sat(I32X4, a))
|
||||
@@ -1884,8 +1892,6 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
|
||||
| Operator::I16x8ExtAddPairwiseI8x16U
|
||||
| Operator::I32x4ExtAddPairwiseI16x8S
|
||||
| Operator::I32x4ExtAddPairwiseI16x8U
|
||||
| Operator::F32x4DemoteF64x2Zero
|
||||
| Operator::F64x2PromoteLowF32x4
|
||||
| Operator::F64x2ConvertLowI32x4U
|
||||
| Operator::I32x4TruncSatF64x2SZero
|
||||
| Operator::I32x4TruncSatF64x2UZero => {
|
||||
|
||||
Reference in New Issue
Block a user