///|
// Comparison code negation (C cmpneg in util.c, via cmptab).

///|
pub fn cmpneg(c : Int) -> Int {
  match c {
    0 => 1
    1 => 0
    2 => 5
    3 => 4
    4 => 3
    5 => 2
    6 => 9
    7 => 8
    8 => 7
    9 => 6
    // CmpF: Cfeq=0, Cfge=1, Cfgt=2, Cfle=3, Cflt=4, Cfne=5, Cfo=6, Cfuo=7
    10 => 15 // NCmpI+Cfeq -> NCmpI+Cfne
    11 => 14 // NCmpI+Cfge -> NCmpI+Cflt
    12 => 13 // NCmpI+Cfgt -> NCmpI+Cfle
    13 => 12 // NCmpI+Cfle -> NCmpI+Cfgt
    14 => 11 // NCmpI+Cflt -> NCmpI+Cfge
    15 => 10 // NCmpI+Cfne -> NCmpI+Cfeq
    16 => 17 // NCmpI+Cfo -> NCmpI+Cfuo
    17 => 16 // NCmpI+Cfuo -> NCmpI+Cfo
    _ => abort("invalid comparison")
  }
}