Enum miri::shims::x86::FloatBinOp
source · enum FloatBinOp {
Arith(BinOp),
Cmp {
gt: bool,
lt: bool,
eq: bool,
unord: bool,
},
Min,
Max,
}
Variants§
Arith(BinOp)
Arithmetic operation
Cmp
Fields
Comparison
The semantics of this operator is a case distinction: we compare the two operands,
and then we return one of the four booleans gt
, lt
, eq
, unord
depending on
which class they fall into.
AVX supports all 16 combinations, SSE only a subset
https://www.felixcloutier.com/x86/cmpss https://www.felixcloutier.com/x86/cmpps https://www.felixcloutier.com/x86/cmpsd https://www.felixcloutier.com/x86/cmppd
Min
Minimum value (with SSE semantics)
https://www.felixcloutier.com/x86/minss https://www.felixcloutier.com/x86/minps https://www.felixcloutier.com/x86/minsd https://www.felixcloutier.com/x86/minpd
Max
Implementations§
source§impl FloatBinOp
impl FloatBinOp
sourcefn cmp_from_imm<'tcx>(
this: &MiriInterpCx<'_, 'tcx>,
imm: i8,
intrinsic: Symbol
) -> InterpResult<'tcx, Self>
fn cmp_from_imm<'tcx>( this: &MiriInterpCx<'_, 'tcx>, imm: i8, intrinsic: Symbol ) -> InterpResult<'tcx, Self>
Convert from the imm
argument used to specify the comparison
operation in intrinsics such as llvm.x86.sse.cmp.ss
.
Trait Implementations§
source§impl Clone for FloatBinOp
impl Clone for FloatBinOp
source§fn clone(&self) -> FloatBinOp
fn clone(&self) -> FloatBinOp
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreimpl Copy for FloatBinOp
Auto Trait Implementations§
impl Freeze for FloatBinOp
impl RefUnwindSafe for FloatBinOp
impl Send for FloatBinOp
impl Sync for FloatBinOp
impl Unpin for FloatBinOp
impl UnwindSafe for FloatBinOp
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T> ) -> &'a mut [T]
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T> ) -> &'a mut [T]
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Filterable for T
impl<T> Filterable for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 4 bytes
Size for each variant:
Arith
: 1 byteCmp
: 4 bytesMin
: 0 bytesMax
: 0 bytes