Skip to content

Commit 1fa8fd8

Browse files
committed
simd numeric intrinsics: share code with scalar intrinsic
1 parent ff95f8b commit 1fa8fd8

File tree

1 file changed

+1
-12
lines changed
  • src/tools/miri/src/shims/intrinsics

1 file changed

+1
-12
lines changed

src/tools/miri/src/shims/intrinsics/simd.rs

+1-12
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
115115
}
116116
}
117117
Op::Numeric(name) => {
118-
assert!(op.layout.ty.is_integral());
119-
let size = op.layout.size;
120-
let bits = op.to_scalar().to_bits(size).unwrap();
121-
let extra = 128u128.checked_sub(u128::from(size.bits())).unwrap();
122-
let bits_out = match name {
123-
sym::ctlz => u128::from(bits.leading_zeros()).checked_sub(extra).unwrap(),
124-
sym::cttz => u128::from((bits << extra).trailing_zeros()).checked_sub(extra).unwrap(),
125-
sym::bswap => (bits << extra).swap_bytes(),
126-
sym::bitreverse => (bits << extra).reverse_bits(),
127-
_ => unreachable!(),
128-
};
129-
Scalar::from_uint(bits_out, size)
118+
this.numeric_intrinsic(name, op.to_scalar(), op.layout)?
130119
}
131120
};
132121
this.write_scalar(val, &dest)?;

0 commit comments

Comments
 (0)