Macro int_divrem_guard

macro_rules! int_divrem_guard {
    (   $lhs:ident,
        $rhs:ident,
        {   const PANIC_ZERO: &'static str = $zero:literal;
            $simd_call:ident, $op:tt
        },
        $int:ident ) => { ... };
}

SAFETY: This macro must only be used to impl Div or Rem and given the matching intrinsic. It guards against LLVM's UB conditions for integer div or rem using masks and selects, thus guaranteeing a Rust value returns instead.

LLVM Rust
N {/,%} 0 UB panic!()
<$int>::MIN / -1 UB <$int>::MIN
<$int>::MIN % -1 UB 0