Open matu3ba opened 1 year ago
Done | Name | a | b | Out | Comment |
---|---|---|---|---|---|
✗ | __satfractqqhq2 | fri16 | ∅ | fri32 | Fixed-Point to other with saturation |
✗ | __satfractqqsq2 | fri16 | ∅ | fri64 | .. |
✗ | __satfractqqdq2 | fri16 | ∅ | fri128 | .. |
✗ | __satfractqqha | fri16 | ∅ | aci16 | .. |
✗ | __satfractqqsa | fri16 | ∅ | aci32 | .. |
✗ | __satfractqqda | fri16 | ∅ | aci64 | .. |
✗ | __satfractqqta | fri16 | ∅ | aci128 | .. |
✗ | __satfractqquqq | fri16 | ∅ | fru16 | .. |
✗ | __satfractqquhq | fri16 | ∅ | fru32 | .. |
✗ | __satfractqqusq | fri16 | ∅ | fru64 | .. |
✗ | __satfractqqudq | fri16 | ∅ | fru128 | .. |
✗ | __satfractqquha | fri16 | ∅ | acu16 | .. |
✗ | __satfractqqusa | fri16 | ∅ | acu32 | .. |
✗ | __satfractqquda | fri16 | ∅ | acu64 | .. |
✗ | __satfractqquta | fri16 | ∅ | acu128 | .. |
✗ | __satfracthqqq2 | fri32 | ∅ | fri16 | .. |
✗ | __satfracthqsq2 | fri32 | ∅ | fri64 | .. |
✗ | __satfracthqdq2 | fri32 | ∅ | fri128 | .. |
✗ | __satfracthqha | fri32 | ∅ | aci16 | .. |
✗ | __satfracthqsa | fri32 | ∅ | aci32 | .. |
✗ | __satfracthqda | fri32 | ∅ | aci64 | .. |
✗ | __satfracthqta | fri32 | ∅ | aci128 | .. |
✗ | __satfracthquqq | fri32 | ∅ | fru16 | .. |
✗ | __satfracthquhq | fri32 | ∅ | fru32 | .. |
✗ | __satfracthqusq | fri32 | ∅ | fru64 | .. |
✗ | __satfracthqudq | fri32 | ∅ | fru128 | .. |
✗ | __satfracthquha | fri32 | ∅ | acu16 | .. |
✗ | __satfracthqusa | fri32 | ∅ | acu32 | .. |
✗ | __satfracthquda | fri32 | ∅ | acu64 | .. |
✗ | __satfracthquta | fri32 | ∅ | acu128 | .. |
✗ | __satfractsqqq2 | fri64 | ∅ | fri16 | .. |
✗ | __satfractsqhq2 | fri64 | ∅ | fri32 | .. |
✗ | __satfractsqdq2 | fri64 | ∅ | fri128 | .. |
✗ | __satfractsqha | fri64 | ∅ | aci16 | .. |
✗ | __satfractsqsa | fri64 | ∅ | aci32 | .. |
✗ | __satfractsqda | fri64 | ∅ | aci64 | .. |
✗ | __satfractsqta | fri64 | ∅ | aci128 | .. |
✗ | __satfractsquqq | fri64 | ∅ | fru16 | .. |
✗ | __satfractsquhq | fri64 | ∅ | fru32 | .. |
✗ | __satfractsqusq | fri64 | ∅ | fru64 | .. |
✗ | __satfractsqudq | fri64 | ∅ | fru128 | .. |
✗ | __satfractsquha | fri64 | ∅ | acu16 | .. |
✗ | __satfractsqusa | fri64 | ∅ | acu32 | .. |
✗ | __satfractsquda | fri64 | ∅ | acu64 | .. |
✗ | __satfractsquta | fri64 | ∅ | acu128 | .. |
✗ | __satfractdqqq2 | fri128 | ∅ | fri16 | .. |
✗ | __satfractdqhq2 | fri128 | ∅ | fri32 | .. |
✗ | __satfractdqsq2 | fri128 | ∅ | fri64 | .. |
✗ | __satfractdqha | fri128 | ∅ | aci16 | .. |
✗ | __satfractdqsa | fri128 | ∅ | aci32 | .. |
✗ | __satfractdqda | fri128 | ∅ | aci64 | .. |
✗ | __satfractdqta | fri128 | ∅ | aci128 | .. |
✗ | __satfractdquqq | fri128 | ∅ | fru16 | .. |
✗ | __satfractdquhq | fri128 | ∅ | fru32 | .. |
✗ | __satfractdqusq | fri128 | ∅ | fru64 | .. |
✗ | __satfractdqudq | fri128 | ∅ | fru128 | .. |
✗ | __satfractdquha | fri128 | ∅ | acu16 | .. |
✗ | __satfractdqusa | fri128 | ∅ | acu32 | .. |
✗ | __satfractdquda | fri128 | ∅ | acu64 | .. |
✗ | __satfractdquta | fri128 | ∅ | acu128 | .. |
✗ | __satfracthaqq | aci16 | ∅ | fri16 | .. |
✗ | __satfracthahq | aci16 | ∅ | fri32 | .. |
✗ | __satfracthasq | aci16 | ∅ | fri64 | .. |
✗ | __satfracthadq | aci16 | ∅ | fri128 | .. |
✗ | __satfracthasa2 | aci16 | ∅ | aci32 | .. |
✗ | __satfracthada2 | aci16 | ∅ | aci64 | .. |
✗ | __satfracthata2 | aci16 | ∅ | aci128 | .. |
✗ | __satfracthauqq | aci16 | ∅ | fru16 | .. |
✗ | __satfracthauhq | aci16 | ∅ | fru32 | .. |
✗ | __satfracthausq | aci16 | ∅ | fru64 | .. |
✗ | __satfracthaudq | aci16 | ∅ | fru128 | .. |
✗ | __satfracthauha | aci16 | ∅ | acu16 | .. |
✗ | __satfracthausa | aci16 | ∅ | acu32 | .. |
✗ | __satfracthauda | aci16 | ∅ | acu64 | .. |
✗ | __satfracthauta | aci16 | ∅ | acu128 | .. |
✗ | __satfractsaqq | aci32 | ∅ | fri16 | .. |
✗ | __satfractsahq | aci32 | ∅ | fri32 | .. |
✗ | __satfractsasq | aci32 | ∅ | fri64 | .. |
✗ | __satfractsadq | aci32 | ∅ | fri128 | .. |
✗ | __satfractsaha2 | aci32 | ∅ | aci16 | .. |
✗ | __satfractsada2 | aci32 | ∅ | aci64 | .. |
✗ | __satfractsata2 | aci32 | ∅ | aci128 | .. |
✗ | __satfractsauqq | aci32 | ∅ | fru16 | .. |
✗ | __satfractsauhq | aci32 | ∅ | fru32 | .. |
✗ | __satfractsausq | aci32 | ∅ | fru64 | .. |
✗ | __satfractsaudq | aci32 | ∅ | fru128 | .. |
✗ | __satfractsauha | aci32 | ∅ | acu16 | .. |
✗ | __satfractsausa | aci32 | ∅ | acu32 | .. |
✗ | __satfractsauda | aci32 | ∅ | acu64 | .. |
✗ | __satfractsauta | aci32 | ∅ | acu128 | .. |
✗ | __satfractdaqq | aci64 | ∅ | fri16 | .. |
✗ | __satfractdahq | aci64 | ∅ | fri32 | .. |
✗ | __satfractdasq | aci64 | ∅ | fri64 | .. |
✗ | __satfractdadq | aci64 | ∅ | fri128 | .. |
✗ | __satfractdaha2 | aci64 | ∅ | aci16 | .. |
✗ | __satfractdasa2 | aci64 | ∅ | aci32 | .. |
✗ | __satfractdata2 | aci64 | ∅ | aci128 | .. |
✗ | __satfractdauqq | aci64 | ∅ | fru16 | .. |
✗ | __satfractdauhq | aci64 | ∅ | fru32 | .. |
✗ | __satfractdausq | aci64 | ∅ | fru64 | .. |
✗ | __satfractdaudq | aci64 | ∅ | fru128 | .. |
✗ | __satfractdauha | aci64 | ∅ | acu16 | .. |
✗ | __satfractdausa | aci64 | ∅ | acu32 | .. |
✗ | __satfractdauda | aci64 | ∅ | acu64 | .. |
✗ | __satfractdauta | aci64 | ∅ | acu128 | .. |
✗ | __satfracttaqq | aci128 | ∅ | fri16 | .. |
✗ | __satfracttahq | aci128 | ∅ | fri32 | .. |
✗ | __satfracttasq | aci128 | ∅ | fri64 | .. |
✗ | __satfracttadq | aci128 | ∅ | fri128 | .. |
✗ | __satfracttaha2 | aci128 | ∅ | aci16 | .. |
✗ | __satfracttasa2 | aci128 | ∅ | aci32 | .. |
✗ | __satfracttada2 | aci128 | ∅ | aci64 | .. |
✗ | __satfracttauqq | aci128 | ∅ | fru16 | .. |
✗ | __satfracttauhq | aci128 | ∅ | fru32 | .. |
✗ | __satfracttausq | aci128 | ∅ | fru64 | .. |
✗ | __satfracttaudq | aci128 | ∅ | fru128 | .. |
✗ | __satfracttauha | aci128 | ∅ | acu16 | .. |
✗ | __satfracttausa | aci128 | ∅ | acu32 | .. |
✗ | __satfracttauda | aci128 | ∅ | acu64 | .. |
✗ | __satfracttauta | aci128 | ∅ | acu128 | .. |
✗ | __satfractuqqqq | fru16 | ∅ | fri16 | .. |
✗ | __satfractuqqhq | fru16 | ∅ | fri32 | .. |
✗ | __satfractuqqsq | fru16 | ∅ | fri64 | .. |
✗ | __satfractuqqdq | fru16 | ∅ | fri128 | .. |
✗ | __satfractuqqha | fru16 | ∅ | aci16 | .. |
✗ | __satfractuqqsa | fru16 | ∅ | aci32 | .. |
✗ | __satfractuqqda | fru16 | ∅ | aci64 | .. |
✗ | __satfractuqqta | fru16 | ∅ | aci128 | .. |
✗ | __satfractuqquhq2 | fru16 | ∅ | fru32 | .. |
✗ | __satfractuqqusq2 | fru16 | ∅ | fru64 | .. |
✗ | __satfractuqqudq2 | fru16 | ∅ | fru128 | .. |
✗ | __satfractuqquha | fru16 | ∅ | acu16 | .. |
✗ | __satfractuqqusa | fru16 | ∅ | acu32 | .. |
✗ | __satfractuqquda | fru16 | ∅ | acu64 | .. |
✗ | __satfractuqquta | fru16 | ∅ | acu128 | .. |
✗ | __satfractuhqqq | fru32 | ∅ | fri16 | .. |
✗ | __satfractuhqhq | fru32 | ∅ | fri32 | .. |
✗ | __satfractuhqsq | fru32 | ∅ | fri64 | .. |
✗ | __satfractuhqdq | fru32 | ∅ | fri128 | .. |
✗ | __satfractuhqha | fru32 | ∅ | aci16 | .. |
✗ | __satfractuhqsa | fru32 | ∅ | aci32 | .. |
✗ | __satfractuhqda | fru32 | ∅ | aci64 | .. |
✗ | __satfractuhqta | fru32 | ∅ | aci128 | .. |
✗ | __satfractuhquqq2 | fru32 | ∅ | fru16 | .. |
✗ | __satfractuhqusq2 | fru32 | ∅ | fru64 | .. |
✗ | __satfractuhqudq2 | fru32 | ∅ | fru128 | .. |
✗ | __satfractuhquha | fru32 | ∅ | acu16 | .. |
✗ | __satfractuhqusa | fru32 | ∅ | acu32 | .. |
✗ | __satfractuhquda | fru32 | ∅ | acu64 | .. |
✗ | __satfractuhquta | fru32 | ∅ | acu128 | .. |
✗ | __satfractusqqq | fru64 | ∅ | fri16 | .. |
✗ | __satfractusqhq | fru64 | ∅ | fri32 | .. |
✗ | __satfractusqsq | fru64 | ∅ | fri64 | .. |
✗ | __satfractusqdq | fru64 | ∅ | fri128 | .. |
✗ | __satfractusqha | fru64 | ∅ | aci16 | .. |
✗ | __satfractusqsa | fru64 | ∅ | aci32 | .. |
✗ | __satfractusqda | fru64 | ∅ | aci64 | .. |
✗ | __satfractusqta | fru64 | ∅ | aci128 | .. |
✗ | __satfractusquqq2 | fru64 | ∅ | fru16 | .. |
✗ | __satfractusquhq2 | fru64 | ∅ | fru32 | .. |
✗ | __satfractusqudq2 | fru64 | ∅ | fru128 | .. |
✗ | __satfractusquha | fru64 | ∅ | acu16 | .. |
✗ | __satfractusqusa | fru64 | ∅ | acu32 | .. |
✗ | __satfractusquda | fru64 | ∅ | acu64 | .. |
✗ | __satfractusquta | fru64 | ∅ | acu128 | .. |
✗ | __satfractudqqq | fru128 | ∅ | fri16 | .. |
✗ | __satfractudqhq | fru128 | ∅ | fri32 | .. |
✗ | __satfractudqsq | fru128 | ∅ | fri64 | .. |
✗ | __satfractudqdq | fru128 | ∅ | fri128 | .. |
✗ | __satfractudqha | fru128 | ∅ | aci16 | .. |
✗ | __satfractudqsa | fru128 | ∅ | aci32 | .. |
✗ | __satfractudqda | fru128 | ∅ | aci64 | .. |
✗ | __satfractudqta | fru128 | ∅ | aci128 | .. |
✗ | __satfractudquqq2 | fru128 | ∅ | fru16 | .. |
✗ | __satfractudquhq2 | fru128 | ∅ | fru32 | .. |
✗ | __satfractudqusq2 | fru128 | ∅ | fru64 | .. |
✗ | __satfractudquha | fru128 | ∅ | acu16 | .. |
✗ | __satfractudqusa | fru128 | ∅ | acu32 | .. |
✗ | __satfractudquda | fru128 | ∅ | acu64 | .. |
✗ | __satfractudquta | fru128 | ∅ | acu128 | .. |
✗ | __satfractuhaqq | acu16 | ∅ | fri16 | .. |
✗ | __satfractuhahq | acu16 | ∅ | fri32 | .. |
✗ | __satfractuhasq | acu16 | ∅ | fri64 | .. |
✗ | __satfractuhadq | acu16 | ∅ | fri128 | .. |
✗ | __satfractuhaha | acu16 | ∅ | aci16 | .. |
✗ | __satfractuhasa | acu16 | ∅ | aci32 | .. |
✗ | __satfractuhada | acu16 | ∅ | aci64 | .. |
✗ | __satfractuhata | acu16 | ∅ | aci128 | .. |
✗ | __satfractuhauqq | acu16 | ∅ | fru16 | .. |
✗ | __satfractuhauhq | acu16 | ∅ | fru32 | .. |
✗ | __satfractuhausq | acu16 | ∅ | fru64 | .. |
✗ | __satfractuhaudq | acu16 | ∅ | fru128 | .. |
✗ | __satfractuhausa2 | acu16 | ∅ | acu32 | .. |
✗ | __satfractuhauda2 | acu16 | ∅ | acu64 | .. |
✗ | __satfractuhauta2 | acu16 | ∅ | acu128 | .. |
✗ | __satfractusaqq | acu32 | ∅ | fri16 | .. |
✗ | __satfractusahq | acu32 | ∅ | fri32 | .. |
✗ | __satfractusasq | acu32 | ∅ | fri64 | .. |
✗ | __satfractusadq | acu32 | ∅ | fri128 | .. |
✗ | __satfractusaha | acu32 | ∅ | aci16 | .. |
✗ | __satfractusasa | acu32 | ∅ | aci32 | .. |
✗ | __satfractusada | acu32 | ∅ | aci64 | .. |
✗ | __satfractusata | acu32 | ∅ | aci128 | .. |
✗ | __satfractusauqq | acu32 | ∅ | fru16 | .. |
✗ | __satfractusauhq | acu32 | ∅ | fru32 | .. |
✗ | __satfractusausq | acu32 | ∅ | fru64 | .. |
✗ | __satfractusaudq | acu32 | ∅ | fru128 | .. |
✗ | __satfractusauha2 | acu32 | ∅ | acu16 | .. |
✗ | __satfractusauda2 | acu32 | ∅ | acu64 | .. |
✗ | __satfractusauta2 | acu32 | ∅ | acu128 | .. |
✗ | __satfractudaqq | acu64 | ∅ | fri16 | .. |
✗ | __satfractudahq | acu64 | ∅ | fri32 | .. |
✗ | __satfractudasq | acu64 | ∅ | fri64 | .. |
✗ | __satfractudadq | acu64 | ∅ | fri128 | .. |
✗ | __satfractudaha | acu64 | ∅ | aci16 | .. |
✗ | __satfractudasa | acu64 | ∅ | aci32 | .. |
✗ | __satfractudada | acu64 | ∅ | aci64 | .. |
✗ | __satfractudata | acu64 | ∅ | aci128 | .. |
✗ | __satfractudauqq | acu64 | ∅ | fru16 | .. |
✗ | __satfractudauhq | acu64 | ∅ | fru32 | .. |
✗ | __satfractudausq | acu64 | ∅ | fru64 | .. |
✗ | __satfractudaudq | acu64 | ∅ | fru128 | .. |
✗ | __satfractudauha2 | acu64 | ∅ | acu16 | .. |
✗ | __satfractudausa2 | acu64 | ∅ | acu32 | .. |
✗ | __satfractudauta2 | acu64 | ∅ | acu128 | .. |
✗ | __satfractutaqq | acu128 | ∅ | fri16 | .. |
✗ | __satfractutahq | acu128 | ∅ | fri32 | .. |
✗ | __satfractutasq | acu128 | ∅ | fri64 | .. |
✗ | __satfractutadq | acu128 | ∅ | fri128 | .. |
✗ | __satfractutaha | acu128 | ∅ | aci16 | .. |
✗ | __satfractutasa | acu128 | ∅ | aci32 | .. |
✗ | __satfractutada | acu128 | ∅ | aci64 | .. |
✗ | __satfractutata | acu128 | ∅ | aci128 | .. |
✗ | __satfractutauqq | acu128 | ∅ | fru16 | .. |
✗ | __satfractutauhq | acu128 | ∅ | fru32 | .. |
✗ | __satfractutausq | acu128 | ∅ | fru64 | .. |
✗ | __satfractutaudq | acu128 | ∅ | fru128 | .. |
✗ | __satfractutauha2 | acu128 | ∅ | acu16 | .. |
✗ | __satfractutausa2 | acu128 | ∅ | acu32 | .. |
✗ | __satfractutauda2 | acu128 | ∅ | acu64 | .. |
✗ | __satfractqiqq | i8 | ∅ | fri16 | Primitive to Fix-Point with saturation |
✗ | __satfractqihq | i8 | ∅ | fri32 | .. |
✗ | __satfractqisq | i8 | ∅ | fri64 | .. |
✗ | __satfractqidq | i8 | ∅ | fri128 | .. |
✗ | __satfractqiha | i8 | ∅ | aci16 | .. |
✗ | __satfractqisa | i8 | ∅ | aci32 | .. |
✗ | __satfractqida | i8 | ∅ | aci64 | .. |
✗ | __satfractqita | i8 | ∅ | aci128 | .. |
✗ | __satfractqiuqq | i8 | ∅ | fru16 | .. |
✗ | __satfractqiuhq | i8 | ∅ | fru32 | .. |
✗ | __satfractqiusq | i8 | ∅ | fru64 | .. |
✗ | __satfractqiudq | i8 | ∅ | fru128 | .. |
✗ | __satfractqiuha | i8 | ∅ | acu16 | .. |
✗ | __satfractqiusa | i8 | ∅ | acu32 | .. |
✗ | __satfractqiuda | i8 | ∅ | acu64 | .. |
✗ | __satfractqiuta | i8 | ∅ | acu128 | .. |
✗ | __satfracthiqq | c_short | ∅ | fri16 | .. |
✗ | __satfracthihq | c_short | ∅ | fri32 | .. |
✗ | __satfracthisq | c_short | ∅ | fri64 | .. |
✗ | __satfracthidq | c_short | ∅ | fri128 | .. |
✗ | __satfracthiha | c_short | ∅ | aci16 | .. |
✗ | __satfracthisa | c_short | ∅ | aci32 | .. |
✗ | __satfracthida | c_short | ∅ | aci64 | .. |
✗ | __satfracthita | c_short | ∅ | aci128 | .. |
✗ | __satfracthiuqq | c_short | ∅ | fru16 | .. |
✗ | __satfracthiuhq | c_short | ∅ | fru32 | .. |
✗ | __satfracthiusq | c_short | ∅ | fru64 | .. |
✗ | __satfracthiudq | c_short | ∅ | fru128 | .. |
✗ | __satfracthiuha | c_short | ∅ | acu16 | .. |
✗ | __satfracthiusa | c_short | ∅ | acu32 | .. |
✗ | __satfracthiuda | c_short | ∅ | acu64 | .. |
✗ | __satfracthiuta | c_short | ∅ | acu128 | .. |
✗ | __satfractsiqq | c_int | ∅ | fri16 | .. |
✗ | __satfractsihq | c_int | ∅ | fri32 | .. |
✗ | __satfractsisq | c_int | ∅ | fri64 | .. |
✗ | __satfractsidq | c_int | ∅ | fri128 | .. |
✗ | __satfractsiha | c_int | ∅ | aci16 | .. |
✗ | __satfractsisa | c_int | ∅ | aci32 | .. |
✗ | __satfractsida | c_int | ∅ | aci64 | .. |
✗ | __satfractsita | c_int | ∅ | aci128 | .. |
✗ | __satfractsiuqq | c_int | ∅ | fru16 | .. |
✗ | __satfractsiuhq | c_int | ∅ | fru32 | .. |
✗ | __satfractsiusq | c_int | ∅ | fru64 | .. |
✗ | __satfractsiudq | c_int | ∅ | fru128 | .. |
✗ | __satfractsiuha | c_int | ∅ | acu16 | .. |
✗ | __satfractsiusa | c_int | ∅ | acu32 | .. |
✗ | __satfractsiuda | c_int | ∅ | acu64 | .. |
✗ | __satfractsiuta | c_int | ∅ | acu128 | .. |
✗ | __satfractdiqq | c_long | ∅ | fri16 | .. |
✗ | __satfractdihq | c_long | ∅ | fri32 | .. |
✗ | __satfractdisq | c_long | ∅ | fri64 | .. |
✗ | __satfractdidq | c_long | ∅ | fri128 | .. |
✗ | __satfractdiha | c_long | ∅ | aci16 | .. |
✗ | __satfractdisa | c_long | ∅ | aci32 | .. |
✗ | __satfractdida | c_long | ∅ | aci64 | .. |
✗ | __satfractdita | c_long | ∅ | aci128 | .. |
✗ | __satfractdiuqq | c_long | ∅ | fru16 | .. |
✗ | __satfractdiuhq | c_long | ∅ | fru32 | .. |
✗ | __satfractdiusq | c_long | ∅ | fru64 | .. |
✗ | __satfractdiudq | c_long | ∅ | fru128 | .. |
✗ | __satfractdiuha | c_long | ∅ | acu16 | .. |
✗ | __satfractdiusa | c_long | ∅ | acu32 | .. |
✗ | __satfractdiuda | c_long | ∅ | acu64 | .. |
✗ | __satfractdiuta | c_long | ∅ | acu128 | .. |
✗ | __satfracttiqq | c_longlong | ∅ | fri16 | .. |
✗ | __satfracttihq | c_longlong | ∅ | fri32 | .. |
✗ | __satfracttisq | c_longlong | ∅ | fri64 | .. |
✗ | __satfracttidq | c_longlong | ∅ | fri128 | .. |
✗ | __satfracttiha | c_longlong | ∅ | aci16 | .. |
✗ | __satfracttisa | c_longlong | ∅ | aci32 | .. |
✗ | __satfracttida | c_longlong | ∅ | aci64 | .. |
✗ | __satfracttita | c_longlong | ∅ | aci128 | .. |
✗ | __satfracttiuqq | c_longlong | ∅ | fru16 | .. |
✗ | __satfracttiuhq | c_longlong | ∅ | fru32 | .. |
✗ | __satfracttiusq | c_longlong | ∅ | fru64 | .. |
✗ | __satfracttiudq | c_longlong | ∅ | fru128 | .. |
✗ | __satfracttiuha | c_longlong | ∅ | acu16 | .. |
✗ | __satfracttiusa | c_longlong | ∅ | acu32 | .. |
✗ | __satfracttiuda | c_longlong | ∅ | acu64 | .. |
✗ | __satfracttiuta | c_longlong | ∅ | acu128 | .. |
✗ | __satfractsfqq | f32 | ∅ | fri16 | .. |
✗ | __satfractsfhq | f32 | ∅ | fri32 | .. |
✗ | __satfractsfsq | f32 | ∅ | fri64 | .. |
✗ | __satfractsfdq | f32 | ∅ | fri128 | .. |
✗ | __satfractsfha | f32 | ∅ | aci16 | .. |
✗ | __satfractsfsa | f32 | ∅ | aci32 | .. |
✗ | __satfractsfda | f32 | ∅ | aci64 | .. |
✗ | __satfractsfta | f32 | ∅ | aci128 | .. |
✗ | __satfractsfuqq | f32 | ∅ | fru16 | .. |
✗ | __satfractsfuhq | f32 | ∅ | fru32 | .. |
✗ | __satfractsfusq | f32 | ∅ | fru64 | .. |
✗ | __satfractsfudq | f32 | ∅ | fru128 | .. |
✗ | __satfractsfuha | f32 | ∅ | acu16 | .. |
✗ | __satfractsfusa | f32 | ∅ | acu32 | .. |
✗ | __satfractsfuda | f32 | ∅ | acu64 | .. |
✗ | __satfractsfuta | f32 | ∅ | acu128 | .. |
✗ | __satfractdfqq | f64 | ∅ | fri16 | .. |
✗ | __satfractdfhq | f64 | ∅ | fri32 | .. |
✗ | __satfractdfsq | f64 | ∅ | fri64 | .. |
✗ | __satfractdfdq | f64 | ∅ | fri128 | .. |
✗ | __satfractdfha | f64 | ∅ | aci16 | .. |
✗ | __satfractdfsa | f64 | ∅ | aci32 | .. |
✗ | __satfractdfda | f64 | ∅ | aci64 | .. |
✗ | __satfractdfta | f64 | ∅ | aci128 | .. |
✗ | __satfractdfuqq | f64 | ∅ | fru16 | .. |
✗ | __satfractdfuhq | f64 | ∅ | fru32 | .. |
✗ | __satfractdfusq | f64 | ∅ | fru64 | .. |
✗ | __satfractdfudq | f64 | ∅ | fru128 | .. |
✗ | __satfractdfuha | f64 | ∅ | acu16 | .. |
✗ | __satfractdfusa | f64 | ∅ | acu32 | .. |
✗ | __satfractdfuda | f64 | ∅ | acu64 | .. |
✗ | __satfractdfuta | f64 | ∅ | acu128 | .. |
Done | Name | a | b | Out | Comment |
---|---|---|---|---|---|
✗ | __fractunsqqqi | fri16 | ∅ | u8 | Fix-Point to other without saturation |
✗ | __fractunsqqhi | fri16 | ∅ | c_ushort | .. |
✗ | __fractunsqqsi | fri16 | ∅ | c_uint | .. |
✗ | __fractunsqqdi | fri16 | ∅ | c_ulong | .. |
✗ | __fractunsqqti | fri16 | ∅ | c_ulonglong | .. |
✗ | __fractunshqqi | fri32 | ∅ | u8 | .. |
✗ | __fractunshqhi | fri32 | ∅ | c_ushort | .. |
✗ | __fractunshqsi | fri32 | ∅ | c_uint | .. |
✗ | __fractunshqdi | fri32 | ∅ | c_ulong | .. |
✗ | __fractunshqti | fri32 | ∅ | c_ulonglong | .. |
✗ | __fractunssqqi | fri64 | ∅ | u8 | .. |
✗ | __fractunssqhi | fri64 | ∅ | c_ushort | .. |
✗ | __fractunssqsi | fri64 | ∅ | c_uint | .. |
✗ | __fractunssqdi | fri64 | ∅ | c_ulong | .. |
✗ | __fractunssqti | fri64 | ∅ | c_ulonglong | .. |
✗ | __fractunsdqqi | fri128 | ∅ | u8 | .. |
✗ | __fractunsdqhi | fri128 | ∅ | c_ushort | .. |
✗ | __fractunsdqsi | fri128 | ∅ | c_uint | .. |
✗ | __fractunsdqdi | fri128 | ∅ | c_ulong | .. |
✗ | __fractunsdqti | fri128 | ∅ | c_ulonglong | .. |
✗ | __fractunshaqi | aci16 | ∅ | u8 | .. |
✗ | __fractunshahi | aci16 | ∅ | c_ushort | .. |
✗ | __fractunshasi | aci16 | ∅ | c_uint | .. |
✗ | __fractunshadi | aci16 | ∅ | c_ulong | .. |
✗ | __fractunshati | aci16 | ∅ | c_ulonglong | .. |
✗ | __fractunssaqi | aci32 | ∅ | u8 | .. |
✗ | __fractunssahi | aci32 | ∅ | c_ushort | .. |
✗ | __fractunssasi | aci32 | ∅ | c_uint | .. |
✗ | __fractunssadi | aci32 | ∅ | c_ulong | .. |
✗ | __fractunssati | aci32 | ∅ | c_ulonglong | .. |
✗ | __fractunsdaqi | aci64 | ∅ | u8 | .. |
✗ | __fractunsdahi | aci64 | ∅ | c_ushort | .. |
✗ | __fractunsdasi | aci64 | ∅ | c_uint | .. |
✗ | __fractunsdadi | aci64 | ∅ | c_ulong | .. |
✗ | __fractunsdati | aci64 | ∅ | c_ulonglong | .. |
✗ | __fractunstaqi | aci128 | ∅ | u8 | .. |
✗ | __fractunstahi | aci128 | ∅ | c_ushort | .. |
✗ | __fractunstasi | aci128 | ∅ | c_uint | .. |
✗ | __fractunstadi | aci128 | ∅ | c_ulong | .. |
✗ | __fractunstati | aci128 | ∅ | c_ulonglong | .. |
✗ | __fractunsuqqqi | fru16 | ∅ | u8 | .. |
✗ | __fractunsuqqhi | fru16 | ∅ | c_ushort | .. |
✗ | __fractunsuqqsi | fru16 | ∅ | c_uint | .. |
✗ | __fractunsuqqdi | fru16 | ∅ | c_ulong | .. |
✗ | __fractunsuqqti | fru16 | ∅ | c_ulonglong | .. |
✗ | __fractunsuhqqi | fru32 | ∅ | u8 | .. |
✗ | __fractunsuhqhi | fru32 | ∅ | c_ushort | .. |
✗ | __fractunsuhqsi | fru32 | ∅ | c_uint | .. |
✗ | __fractunsuhqdi | fru32 | ∅ | c_ulong | .. |
✗ | __fractunsuhqti | fru32 | ∅ | c_ulonglong | .. |
✗ | __fractunsusqqi | fru64 | ∅ | u8 | .. |
✗ | __fractunsusqhi | fru64 | ∅ | c_ushort | .. |
✗ | __fractunsusqsi | fru64 | ∅ | c_uint | .. |
✗ | __fractunsusqdi | fru64 | ∅ | c_ulong | .. |
✗ | __fractunsusqti | fru64 | ∅ | c_ulonglong | .. |
✗ | __fractunsudqqi | fru128 | ∅ | u8 | .. |
✗ | __fractunsudqhi | fru128 | ∅ | c_ushort | .. |
✗ | __fractunsudqsi | fru128 | ∅ | c_uint | .. |
✗ | __fractunsudqdi | fru128 | ∅ | c_ulong | .. |
✗ | __fractunsudqti | fru128 | ∅ | c_ulonglong | .. |
✗ | __fractunsuhaqi | acu16 | ∅ | u8 | .. |
✗ | __fractunsuhahi | acu16 | ∅ | c_ushort | .. |
✗ | __fractunsuhasi | acu16 | ∅ | c_uint | .. |
✗ | __fractunsuhadi | acu16 | ∅ | c_ulong | .. |
✗ | __fractunsuhati | acu16 | ∅ | c_ulonglong | .. |
✗ | __fractunsusaqi | acu32 | ∅ | u8 | .. |
✗ | __fractunsusahi | acu32 | ∅ | c_ushort | .. |
✗ | __fractunsusasi | acu32 | ∅ | c_uint | .. |
✗ | __fractunsusadi | acu32 | ∅ | c_ulong | .. |
✗ | __fractunsusati | acu32 | ∅ | c_ulonglong | .. |
✗ | __fractunsudaqi | acu64 | ∅ | u8 | .. |
✗ | __fractunsudahi | acu64 | ∅ | c_ushort | .. |
✗ | __fractunsudasi | acu64 | ∅ | c_uint | .. |
✗ | __fractunsudadi | acu64 | ∅ | c_ulong | .. |
✗ | __fractunsudati | acu64 | ∅ | c_ulonglong | .. |
✗ | __fractunsutaqi | acu128 | ∅ | u8 | .. |
✗ | __fractunsutahi | acu128 | ∅ | c_ushort | .. |
✗ | __fractunsutasi | acu128 | ∅ | c_uint | .. |
✗ | __fractunsutadi | acu128 | ∅ | c_ulong | .. |
✗ | __fractunsutati | acu128 | ∅ | c_ulonglong | .. |
✗ | __fractunsqiqq | u8 | ∅ | fri16 | Primitive to other without saturation |
✗ | __fractunsqihq | u8 | ∅ | fri32 | .. |
✗ | __fractunsqisq | u8 | ∅ | fri64 | .. |
✗ | __fractunsqidq | u8 | ∅ | fri128 | .. |
✗ | __fractunsqiha | u8 | ∅ | aci16 | .. |
✗ | __fractunsqisa | u8 | ∅ | aci32 | .. |
✗ | __fractunsqida | u8 | ∅ | aci64 | .. |
✗ | __fractunsqita | u8 | ∅ | aci128 | .. |
✗ | __fractunsqiuqq | u8 | ∅ | fru16 | .. |
✗ | __fractunsqiuhq | u8 | ∅ | fru32 | .. |
✗ | __fractunsqiusq | u8 | ∅ | fru64 | .. |
✗ | __fractunsqiudq | u8 | ∅ | fru128 | .. |
✗ | __fractunsqiuha | u8 | ∅ | acu16 | .. |
✗ | __fractunsqiusa | u8 | ∅ | acu32 | .. |
✗ | __fractunsqiuda | u8 | ∅ | acu64 | .. |
✗ | __fractunsqiuta | u8 | ∅ | acu128 | .. |
✗ | __fractunshiqq | c_ushort | ∅ | fri16 | .. |
✗ | __fractunshihq | c_ushort | ∅ | fri32 | .. |
✗ | __fractunshisq | c_ushort | ∅ | fri64 | .. |
✗ | __fractunshidq | c_ushort | ∅ | fri128 | .. |
✗ | __fractunshiha | c_ushort | ∅ | aci16 | .. |
✗ | __fractunshisa | c_ushort | ∅ | aci32 | .. |
✗ | __fractunshida | c_ushort | ∅ | aci64 | .. |
✗ | __fractunshita | c_ushort | ∅ | aci128 | .. |
✗ | __fractunshiuqq | c_ushort | ∅ | fru16 | .. |
✗ | __fractunshiuhq | c_ushort | ∅ | fru32 | .. |
✗ | __fractunshiusq | c_ushort | ∅ | fru64 | .. |
✗ | __fractunshiudq | c_ushort | ∅ | fru128 | .. |
✗ | __fractunshiuha | c_ushort | ∅ | acu16 | .. |
✗ | __fractunshiusa | c_ushort | ∅ | acu32 | .. |
✗ | __fractunshiuda | c_ushort | ∅ | acu64 | .. |
✗ | __fractunshiuta | c_ushort | ∅ | acu128 | .. |
✗ | __fractunssiqq | c_uint | ∅ | fri16 | .. |
✗ | __fractunssihq | c_uint | ∅ | fri32 | .. |
✗ | __fractunssisq | c_uint | ∅ | fri64 | .. |
✗ | __fractunssidq | c_uint | ∅ | fri128 | .. |
✗ | __fractunssiha | c_uint | ∅ | aci16 | .. |
✗ | __fractunssisa | c_uint | ∅ | aci32 | .. |
✗ | __fractunssida | c_uint | ∅ | aci64 | .. |
✗ | __fractunssita | c_uint | ∅ | aci128 | .. |
✗ | __fractunssiuqq | c_uint | ∅ | fru16 | .. |
✗ | __fractunssiuhq | c_uint | ∅ | fru32 | .. |
✗ | __fractunssiusq | c_uint | ∅ | fru64 | .. |
✗ | __fractunssiudq | c_uint | ∅ | fru128 | .. |
✗ | __fractunssiuha | c_uint | ∅ | acu16 | .. |
✗ | __fractunssiusa | c_uint | ∅ | acu32 | .. |
✗ | __fractunssiuda | c_uint | ∅ | acu64 | .. |
✗ | __fractunssiuta | c_uint | ∅ | acu128 | .. |
✗ | __fractunsdiqq | c_ulong | ∅ | fri16 | .. |
✗ | __fractunsdihq | c_ulong | ∅ | fri32 | .. |
✗ | __fractunsdisq | c_ulong | ∅ | fri64 | .. |
✗ | __fractunsdidq | c_ulong | ∅ | fri128 | .. |
✗ | __fractunsdiha | c_ulong | ∅ | aci16 | .. |
✗ | __fractunsdisa | c_ulong | ∅ | aci32 | .. |
✗ | __fractunsdida | c_ulong | ∅ | aci64 | .. |
✗ | __fractunsdita | c_ulong | ∅ | aci128 | .. |
✗ | __fractunsdiuqq | c_ulong | ∅ | fru16 | .. |
✗ | __fractunsdiuhq | c_ulong | ∅ | fru32 | .. |
✗ | __fractunsdiusq | c_ulong | ∅ | fru64 | .. |
✗ | __fractunsdiudq | c_ulong | ∅ | fru128 | .. |
✗ | __fractunsdiuha | c_ulong | ∅ | acu16 | .. |
✗ | __fractunsdiusa | c_ulong | ∅ | acu32 | .. |
✗ | __fractunsdiuda | c_ulong | ∅ | acu64 | .. |
✗ | __fractunsdiuta | c_ulong | ∅ | acu128 | .. |
✗ | __fractunstiqq | c_ulonglong | ∅ | fri16 | .. |
✗ | __fractunstihq | c_ulonglong | ∅ | fri32 | .. |
✗ | __fractunstisq | c_ulonglong | ∅ | fri64 | .. |
✗ | __fractunstidq | c_ulonglong | ∅ | fri128 | .. |
✗ | __fractunstiha | c_ulonglong | ∅ | aci16 | .. |
✗ | __fractunstisa | c_ulonglong | ∅ | aci32 | .. |
✗ | __fractunstida | c_ulonglong | ∅ | aci64 | .. |
✗ | __fractunstita | c_ulonglong | ∅ | aci128 | .. |
✗ | __fractunstiuqq | c_ulonglong | ∅ | fru16 | .. |
✗ | __fractunstiuhq | c_ulonglong | ∅ | fru32 | .. |
✗ | __fractunstiusq | c_ulonglong | ∅ | fru64 | .. |
✗ | __fractunstiudq | c_ulonglong | ∅ | fru128 | .. |
✗ | __fractunstiuha | c_ulonglong | ∅ | acu16 | .. |
✗ | __fractunstiusa | c_ulonglong | ∅ | acu32 | .. |
✗ | __fractunstiuda | c_ulonglong | ∅ | acu64 | .. |
✗ | __fractunstiuta | c_ulonglong | ∅ | acu128 | .. |
✗ | __satfractunsqiqq | u8 | ∅ | fri16 | Primitive to Fix-Point with saturation |
✗ | __satfractunsqihq | u8 | ∅ | fri32 | .. |
✗ | __satfractunsqisq | u8 | ∅ | fri64 | .. |
✗ | __satfractunsqidq | u8 | ∅ | fri128 | .. |
✗ | __satfractunsqiha | u8 | ∅ | aci16 | .. |
✗ | __satfractunsqisa | u8 | ∅ | aci32 | .. |
✗ | __satfractunsqida | u8 | ∅ | aci64 | .. |
✗ | __satfractunsqita | u8 | ∅ | aci128 | .. |
✗ | __satfractunsqiuqq | u8 | ∅ | fru16 | .. |
✗ | __satfractunsqiuhq | u8 | ∅ | fru32 | .. |
✗ | __satfractunsqiusq | u8 | ∅ | fru64 | .. |
✗ | __satfractunsqiudq | u8 | ∅ | fru128 | .. |
✗ | __satfractunsqiuha | u8 | ∅ | acu16 | .. |
✗ | __satfractunsqiusa | u8 | ∅ | acu32 | .. |
✗ | __satfractunsqiuda | u8 | ∅ | acu64 | .. |
✗ | __satfractunsqiuta | u8 | ∅ | acu128 | .. |
✗ | __satfractunshiqq | c_ushort | ∅ | fri16 | .. |
✗ | __satfractunshihq | c_ushort | ∅ | fri32 | .. |
✗ | __satfractunshisq | c_ushort | ∅ | fri64 | .. |
✗ | __satfractunshidq | c_ushort | ∅ | fri128 | .. |
✗ | __satfractunshiha | c_ushort | ∅ | aci16 | .. |
✗ | __satfractunshisa | c_ushort | ∅ | aci32 | .. |
✗ | __satfractunshida | c_ushort | ∅ | aci64 | .. |
✗ | __satfractunshita | c_ushort | ∅ | aci128 | .. |
✗ | __satfractunshiuqq | c_ushort | ∅ | fru16 | .. |
✗ | __satfractunshiuhq | c_ushort | ∅ | fru32 | .. |
✗ | __satfractunshiusq | c_ushort | ∅ | fru64 | .. |
✗ | __satfractunshiudq | c_ushort | ∅ | fru128 | .. |
✗ | __satfractunshiuha | c_ushort | ∅ | acu16 | .. |
✗ | __satfractunshiusa | c_ushort | ∅ | acu32 | .. |
✗ | __satfractunshiuda | c_ushort | ∅ | acu64 | .. |
✗ | __satfractunshiuta | c_ushort | ∅ | acu128 | .. |
✗ | __satfractunssiqq | c_uint | ∅ | fri16 | .. |
✗ | __satfractunssihq | c_uint | ∅ | fri32 | .. |
✗ | __satfractunssisq | c_uint | ∅ | fri64 | .. |
✗ | __satfractunssidq | c_uint | ∅ | fri128 | .. |
✗ | __satfractunssiha | c_uint | ∅ | aci16 | .. |
✗ | __satfractunssisa | c_uint | ∅ | aci32 | .. |
✗ | __satfractunssida | c_uint | ∅ | aci64 | .. |
✗ | __satfractunssita | c_uint | ∅ | aci128 | .. |
✗ | __satfractunssiuqq | c_uint | ∅ | fru16 | .. |
✗ | __satfractunssiuhq | c_uint | ∅ | fru32 | .. |
✗ | __satfractunssiusq | c_uint | ∅ | fru64 | .. |
✗ | __satfractunssiudq | c_uint | ∅ | fru128 | .. |
✗ | __satfractunssiuha | c_uint | ∅ | acu16 | .. |
✗ | __satfractunssiusa | c_uint | ∅ | acu32 | .. |
✗ | __satfractunssiuda | c_uint | ∅ | acu64 | .. |
✗ | __satfractunssiuta | c_uint | ∅ | acu128 | .. |
✗ | __satfractunsdiqq | c_ulong | ∅ | fri16 | .. |
✗ | __satfractunsdihq | c_ulong | ∅ | fri32 | .. |
✗ | __satfractunsdisq | c_ulong | ∅ | fri64 | .. |
✗ | __satfractunsdidq | c_ulong | ∅ | fri128 | .. |
✗ | __satfractunsdiha | c_ulong | ∅ | aci16 | .. |
✗ | __satfractunsdisa | c_ulong | ∅ | aci32 | .. |
✗ | __satfractunsdida | c_ulong | ∅ | aci64 | .. |
✗ | __satfractunsdita | c_ulong | ∅ | aci128 | .. |
✗ | __satfractunsdiuqq | c_ulong | ∅ | fru16 | .. |
✗ | __satfractunsdiuhq | c_ulong | ∅ | fru32 | .. |
✗ | __satfractunsdiusq | c_ulong | ∅ | fru64 | .. |
✗ | __satfractunsdiudq | c_ulong | ∅ | fru128 | .. |
✗ | __satfractunsdiuha | c_ulong | ∅ | acu16 | .. |
✗ | __satfractunsdiusa | c_ulong | ∅ | acu32 | .. |
✗ | __satfractunsdiuda | c_ulong | ∅ | acu64 | .. |
✗ | __satfractunsdiuta | c_ulong | ∅ | acu128 | .. |
✗ | __satfractunstiqq | c_ulonglong | ∅ | fri16 | .. |
✗ | __satfractunstihq | c_ulonglong | ∅ | fri32 | .. |
✗ | __satfractunstisq | c_ulonglong | ∅ | fri64 | .. |
✗ | __satfractunstidq | c_ulonglong | ∅ | fri128 | .. |
✗ | __satfractunstiha | c_ulonglong | ∅ | aci16 | .. |
✗ | __satfractunstisa | c_ulonglong | ∅ | aci32 | .. |
✗ | __satfractunstida | c_ulonglong | ∅ | aci64 | .. |
✗ | __satfractunstita | c_ulonglong | ∅ | aci128 | .. |
✗ | __satfractunstiuqq | c_ulonglong | ∅ | fru16 | .. |
✗ | __satfractunstiuhq | c_ulonglong | ∅ | fru32 | .. |
✗ | __satfractunstiusq | c_ulonglong | ∅ | fru64 | .. |
✗ | __satfractunstiudq | c_ulonglong | ∅ | fru128 | .. |
✗ | __satfractunstiuha | c_ulonglong | ∅ | acu16 | .. |
✗ | __satfractunstiusa | c_ulonglong | ∅ | acu32 | .. |
✗ | __satfractunstiuda | c_ulonglong | ∅ | acu64 | .. |
✗ | __satfractunstiuta | c_ulonglong | ∅ | acu128 | .. |
Done | Name | a | b | Out | Comment |
---|---|---|---|---|---|
Fixed-Point Comparison | |||||
✗ | __cmpqq2 | fri16 | fri16 | c_int | a<b => 0, a==b => 1, a>b=> 2 |
✗ | __cmphq2 | fri32 | fri32 | c_int | .. |
✗ | __cmpsq2 | fri64 | fri64 | c_int | .. |
✗ | __cmpdq2 | fri128 | fri128 | c_int | .. |
✗ | __cmpuqq2 | fru16 | fru16 | c_int | .. |
✗ | __cmpuhq2 | fru32 | fru32 | c_int | .. |
✗ | __cmpusq2 | fru64 | fru64 | c_int | .. |
✗ | __cmpudq2 | fru128 | fru128 | c_int | .. |
✗ | __cmpha2 | aci16 | aci16 | c_int | .. |
✗ | __cmpsa2 | aci32 | aci32 | c_int | .. |
✗ | __cmpda2 | aci64 | aci64 | c_int | .. |
✗ | __cmpta2 | aci128 | aci128 | c_int | .. |
✗ | __cmpuha2 | acu16 | acu16 | c_int | .. |
✗ | __cmpusa2 | acu32 | acu32 | c_int | .. |
✗ | __cmpuda2 | acu64 | acu64 | c_int | .. |
✗ | __cmputa2 | acu128 | acu128 | c_int | .. |
Fixed-Point Arithmetic | |||||
✗ | __addqq3 | fri16 | fri16 | fri16 | a+b |
✗ | __addhq3 | fri32 | fri32 | fri32 | .. |
✗ | __addsq3 | fri64 | fri64 | fri64 | .. |
✗ | __adddq3 | fri128 | fri128 | fri128 | .. |
✗ | __adduqq3 | fru16 | fru16 | fru16 | .. |
✗ | __adduhq3 | fru32 | fru32 | fru32 | .. |
✗ | __addusq3 | fru64 | fru64 | fru64 | .. |
✗ | __addudq3 | fru128 | fru128 | fru128 | .. |
✗ | __addha3 | aci16 | aci16 | aci16 | .. |
✗ | __addsa3 | aci32 | aci32 | aci32 | .. |
✗ | __addda3 | aci64 | aci64 | aci64 | .. |
✗ | __addta3 | aci128 | aci128 | aci128 | .. |
✗ | __adduha3 | acu16 | acu16 | acu16 | .. |
✗ | __addusa3 | acu32 | acu32 | acu32 | .. |
✗ | __adduda3 | acu64 | acu64 | acu64 | .. |
✗ | __adduta3 | acu128 | acu128 | acu128 | .. |
✗ | __ssaddqq3 | fri16 | fri16 | fri16 | a+b with signed saturation |
✗ | __ssaddhq3 | fri32 | fri32 | fri32 | .. |
✗ | __ssaddsq3 | fri64 | fri64 | fri64 | .. |
✗ | __ssadddq3 | fri128 | fri128 | fri128 | .. |
✗ | __ssaddha3 | aci16 | aci16 | aci16 | .. |
✗ | __ssaddsa3 | aci32 | aci32 | aci32 | .. |
✗ | __ssaddda3 | aci64 | aci64 | aci64 | .. |
✗ | __ssaddta3 | aci128 | aci128 | aci128 | .. |
✗ | __usadduqq3 | fru16 | fru16 | fru16 | a+b with unsigned saturation |
✗ | __usadduhq3 | fru32 | fru32 | fru32 | .. |
✗ | __usaddusq3 | fru64 | fru64 | fru64 | .. |
✗ | __usaddudq3 | fru128 | fru128 | fru128 | .. |
✗ | __usadduha3 | acu16 | acu16 | acu16 | .. |
✗ | __usaddusa3 | acu32 | acu32 | acu32 | .. |
✗ | __usadduda3 | acu64 | acu64 | acu64 | .. |
✗ | __usadduta3 | acu128 | acu128 | acu128 | .. |
✗ | __subqq3 | fri16 | fri16 | fri16 | a-b |
✗ | __subhq3 | fri32 | fri32 | fri32 | .. |
✗ | __subsq3 | fri64 | fri64 | fri64 | .. |
✗ | __subdq3 | fri128 | fri128 | fri128 | .. |
✗ | __subuqq3 | fru16 | fru16 | fru16 | .. |
✗ | __subuhq3 | fru32 | fru32 | fru32 | .. |
✗ | __subusq3 | fru64 | fru64 | fru64 | .. |
✗ | __subudq3 | fru128 | fru128 | fru128 | .. |
✗ | __subha3 | aci16 | aci16 | aci16 | .. |
✗ | __subsa3 | aci32 | aci32 | aci32 | .. |
✗ | __subda3 | aci64 | aci64 | aci64 | .. |
✗ | __subta3 | aci128 | aci128 | aci128 | .. |
✗ | __subuha3 | acu16 | acu16 | acu16 | .. |
✗ | __subusa3 | acu32 | acu32 | acu32 | .. |
✗ | __subuda3 | acu64 | acu64 | acu64 | .. |
✗ | __subuta3 | acu128 | acu128 | acu128 | .. |
✗ | __sssubqq3 | fri16 | fri16 | fri16 | a-b with signed saturation |
✗ | __sssubhq3 | fri32 | fri32 | fri32 | .. |
✗ | __sssubsq3 | fri64 | fri64 | fri64 | .. |
✗ | __sssubdq3 | fri128 | fri128 | fri128 | .. |
✗ | __sssubha3 | aci16 | aci16 | aci16 | .. |
✗ | __sssubsa3 | aci32 | aci32 | aci32 | .. |
✗ | __sssubda3 | aci64 | aci64 | aci64 | .. |
✗ | __sssubta3 | aci128 | aci128 | aci128 | .. |
✗ | __ussubuqq3 | fru16 | fru16 | fru16 | a-b with unsigned saturation |
✗ | __ussubuhq3 | fru32 | fru32 | fru32 | .. |
✗ | __ussubusq3 | fru64 | fru64 | fru64 | .. |
✗ | __ussubudq3 | fru128 | fru128 | fru128 | .. |
✗ | __ussubuha3 | acu16 | acu16 | acu16 | .. |
✗ | __ussubusa3 | acu32 | acu32 | acu32 | .. |
✗ | __ussubuda3 | acu64 | acu64 | acu64 | .. |
✗ | __ussubuta3 | acu128 | acu128 | acu128 | .. |
✗ | __mulqq3 | fri16 | fri16 | fri16 | a*b |
✗ | __mulhq3 | fri32 | fri32 | fri32 | .. |
✗ | __mulsq3 | fri64 | fri64 | fri64 | .. |
✗ | __muldq3 | fri128 | fri128 | fri128 | .. |
✗ | __muluqq3 | fru16 | fru16 | fru16 | .. |
✗ | __muluhq3 | fru32 | fru32 | fru32 | .. |
✗ | __mulusq3 | fru64 | fru64 | fru64 | .. |
✗ | __muludq3 | fru128 | fru128 | fru128 | .. |
✗ | __mulha3 | aci16 | aci16 | aci16 | .. |
✗ | __mulsa3 | aci32 | aci32 | aci32 | .. |
✗ | __mulda3 | aci64 | aci64 | aci64 | .. |
✗ | __multa3 | aci128 | aci128 | aci128 | .. |
✗ | __muluha3 | acu16 | acu16 | acu16 | .. |
✗ | __mulusa3 | acu32 | acu32 | acu32 | .. |
✗ | __muluda3 | acu64 | acu64 | acu64 | .. |
✗ | __muluta3 | acu128 | acu128 | acu128 | .. |
✗ | __ssmulqq3 | fri16 | fri16 | fri16 | a*b with signed saturation |
✗ | __ssmulhq3 | fri32 | fri32 | fri32 | .. |
✗ | __ssmulsq3 | fri64 | fri64 | fri64 | .. |
✗ | __ssmuldq3 | fri128 | fri128 | fri128 | .. |
✗ | __ssmulha3 | aci16 | aci16 | aci16 | .. |
✗ | __ssmulsa3 | aci32 | aci32 | aci32 | .. |
✗ | __ssmulda3 | aci64 | aci64 | aci64 | .. |
✗ | __ssmulta3 | aci128 | aci128 | aci128 | .. |
✗ | __usmuluqq3 | fru16 | fru16 | fru16 | a/b with unsigned saturation |
✗ | __usmuluhq3 | fru32 | fru32 | fru32 | .. |
✗ | __usmulusq3 | fru64 | fru64 | fru64 | .. |
✗ | __usmuludq3 | fru128 | fru128 | fru128 | .. |
✗ | __usmuluha3 | acu16 | acu16 | acu16 | .. |
✗ | __usmulusa3 | acu32 | acu32 | acu32 | .. |
✗ | __usmuluda3 | acu64 | acu64 | acu64 | .. |
✗ | __usmuluta3 | acu128 | acu128 | acu128 | .. |
✗ | __divqq3 | fri16 | fri16 | fri16 | a/b |
✗ | __divhq3 | fri32 | fri32 | fri32 | .. |
✗ | __divsq3 | fri64 | fri64 | fri64 | .. |
✗ | __divdq3 | fri128 | fri128 | fri128 | .. |
✗ | __divha3 | aci16 | aci16 | aci16 | .. |
✗ | __divsa3 | aci32 | aci32 | aci32 | .. |
✗ | __divda3 | aci64 | aci64 | aci64 | .. |
✗ | __divta3 | aci128 | aci128 | aci128 | .. |
✗ | __udivuqq3 | fru16 | fru16 | fru16 | a/b |
✗ | __udivuhq3 | fru32 | fru32 | fru32 | .. |
✗ | __udivusq3 | fru64 | fru64 | fru64 | .. |
✗ | __udivudq3 | fru128 | fru128 | fru128 | .. |
✗ | __udivuha3 | acu16 | acu16 | acu16 | .. |
✗ | __udivusa3 | acu32 | acu32 | acu32 | .. |
✗ | __udivuda3 | acu64 | acu64 | acu64 | .. |
✗ | __udivuta3 | acu128 | acu128 | acu128 | .. |
✗ | __ssdivqq3 | fri16 | fri16 | fri16 | a/b with signed saturation |
✗ | __ssdivhq3 | fri32 | fri32 | fri32 | .. |
✗ | __ssdivsq3 | fri64 | fri64 | fri64 | .. |
✗ | __ssdivdq3 | fri128 | fri128 | fri128 | .. |
✗ | __ssdivha3 | aci16 | aci16 | aci16 | .. |
✗ | __ssdivsa3 | aci32 | aci32 | aci32 | .. |
✗ | __ssdivda3 | aci64 | aci64 | aci64 | .. |
✗ | __ssdivta3 | aci128 | aci128 | aci128 | .. |
✗ | __usdivuqq3 | fru16 | fru16 | fru16 | a/b with unsigned saturation |
✗ | __usdivuhq3 | fru32 | fru32 | fru32 | .. |
✗ | __usdivusq3 | fru64 | fru64 | fru64 | .. |
✗ | __usdivudq3 | fru128 | fru128 | fru128 | .. |
✗ | __usdivuha3 | acu16 | acu16 | acu16 | .. |
✗ | __usdivusa3 | acu32 | acu32 | acu32 | .. |
✗ | __usdivuda3 | acu64 | acu64 | acu64 | .. |
✗ | __usdivuta3 | acu128 | acu128 | acu128 | .. |
✗ | __negqq2 | fri16 | ∅ | fri16 | -a |
✗ | __neghq2 | fri32 | ∅ | fri32 | .. |
✗ | __negsq2 | fri64 | ∅ | fri64 | .. |
✗ | __negdq2 | fri128 | ∅ | fri128 | .. |
✗ | __neguqq2 | fru16 | ∅ | fru16 | .. |
✗ | __neguhq2 | fru32 | ∅ | fru32 | .. |
✗ | __negusq2 | fru64 | ∅ | fru64 | .. |
✗ | __negudq2 | fru128 | ∅ | fru128 | .. |
✗ | __negha2 | aci16 | ∅ | aci16 | .. |
✗ | __negsa2 | aci32 | ∅ | aci32 | .. |
✗ | __negda2 | aci64 | ∅ | aci64 | .. |
✗ | __negta2 | aci128 | ∅ | aci128 | .. |
✗ | __neguha2 | acu16 | ∅ | acu16 | .. |
✗ | __negusa2 | acu32 | ∅ | acu32 | .. |
✗ | __neguda2 | acu64 | ∅ | acu64 | .. |
✗ | __neguta2 | acu128 | ∅ | acu128 | .. |
✗ | __ssnegqq2 | fri16 | ∅ | fri16 | -a with signed saturation |
✗ | __ssneghq2 | fri32 | ∅ | fri32 | .. |
✗ | __ssnegsq2 | fri64 | ∅ | fri64 | .. |
✗ | __ssnegdq2 | fri128 | ∅ | fri128 | .. |
✗ | __ssnegha2 | aci16 | ∅ | aci16 | .. |
✗ | __ssnegsa2 | aci32 | ∅ | aci32 | .. |
✗ | __ssnegda2 | aci64 | ∅ | aci64 | .. |
✗ | __ssnegta2 | aci128 | ∅ | aci128 | .. |
✗ | __usneguqq2 | fru16 | ∅ | fru16 | -a with unsigned saturation |
✗ | __usneguhq2 | fru32 | ∅ | fru32 | .. |
✗ | __usnegusq2 | fru64 | ∅ | fru64 | .. |
✗ | __usnegudq2 | fru128 | ∅ | fru128 | .. |
✗ | __usneguha2 | acu16 | ∅ | acu16 | .. |
✗ | __usnegusa2 | acu32 | ∅ | acu32 | .. |
✗ | __usneguda2 | acu64 | ∅ | acu64 | .. |
✗ | __usneguta2 | acu128 | ∅ | acu128 | .. |
✗ | __ashlqq3 | fri16 | c_int | fri16 | a << b |
✗ | __ashlhq3 | fri32 | c_int | fri32 | .. |
✗ | __ashlsq3 | fri64 | c_int | fri64 | .. |
✗ | __ashldq3 | fri128 | c_int | fri128 | .. |
✗ | __ashluqq3 | fru16 | c_int | fru16 | .. |
✗ | __ashluhq3 | fru32 | c_int | fru32 | .. |
✗ | __ashlusq3 | fru64 | c_int | fru64 | .. |
✗ | __ashludq3 | fru128 | c_int | fru128 | .. |
✗ | __ashlha3 | aci16 | c_int | aci16 | .. |
✗ | __ashlsa3 | aci32 | c_int | aci32 | .. |
✗ | __ashlda3 | aci64 | c_int | aci64 | .. |
✗ | __ashlta3 | aci128 | c_int | aci128 | .. |
✗ | __ashluha3 | acu16 | c_int | acu16 | .. |
✗ | __ashlusa3 | acu32 | c_int | acu32 | .. |
✗ | __ashluda3 | acu64 | c_int | acu64 | .. |
✗ | __ashluta3 | acu128 | c_int | acu128 | .. |
✗ | __ashrqq3 | fri16 | c_int | fri16 | a >> b arithmetic (sign fill) |
✗ | __ashrhq3 | fri32 | c_int | fri32 | .. |
✗ | __ashrsq3 | fri64 | c_int | fri64 | .. |
✗ | __ashrdq3 | fri128 | c_int | fri128 | .. |
✗ | __ashrha3 | aci16 | c_int | aci16 | .. |
✗ | __ashrsa3 | aci32 | c_int | aci32 | .. |
✗ | __ashrda3 | aci64 | c_int | aci64 | .. |
✗ | __ashrta3 | aci128 | c_int | aci128 | .. |
✗ | __lshruqq3 | fru16 | c_int | fru16 | a >> b logical (zero fill) |
✗ | __lshruhq3 | fru32 | c_int | fru32 | .. |
✗ | __lshrusq3 | fru64 | c_int | fru64 | .. |
✗ | __lshrudq3 | fru128 | c_int | fru128 | .. |
✗ | __lshruha3 | acu16 | c_int | acu16 | .. |
✗ | __lshrusa3 | acu32 | c_int | acu32 | .. |
✗ | __lshruda3 | acu64 | c_int | acu64 | .. |
✗ | __lshruta3 | acu128 | c_int | acu128 | .. |
✗ | __ssashlhq3 | fri32 | c_int | fri32 | a << b with signed saturation |
✗ | __ssashlsq3 | fri64 | c_int | fri64 | .. |
✗ | __ssashldq3 | fri128 | c_int | fri128 | .. |
✗ | __ssashlha3 | aci16 | c_int | aci16 | .. |
✗ | __ssashlsa3 | aci32 | c_int | aci32 | .. |
✗ | __ssashlda3 | aci64 | c_int | aci64 | .. |
✗ | __ssashlta3 | aci128 | c_int | aci128 | .. |
✗ | __usashluqq3 | fru16 | c_int | fru16 | a << b with unsigned saturation |
✗ | __usashluhq3 | fru32 | c_int | fru32 | .. |
✗ | __usashlusq3 | fru64 | c_int | fru64 | .. |
✗ | __usashludq3 | fru128 | c_int | fru128 | .. |
✗ | __usashluha3 | acu16 | c_int | acu16 | .. |
✗ | __usashlusa3 | acu32 | c_int | acu32 | .. |
✗ | __usashluda3 | acu64 | c_int | acu64 | .. |
✗ | __usashluta3 | acu128 | c_int | acu128 | .. |
TODO
Documentation is maintained in https://github.com/matu3ba/matu3ba.github.io/tree/master/crt until review or I have a better place for it to reduce maintenance churn.
tldr; stdfix.h looks like a semi-useless abstraction over type sizes. see https://stackoverflow.com/questions/74776106/understanding-fixed-point-notation-in-gcc-clang
Unless we have very convincing use cases, which justify implementing a large subset of all the routines, I think binary fixed point routines belong into a library, which allows the user to only expose the functions needed and to do the type checks at comptime.
Fixed point numbers allow accurate error estimation for arbitrary propagation (in contrast to varying exponents, see Practical float knowledge from https://blog.demofox.org/2017/11/21/floating-point-precision/), so I think Zig should offer something like this, but I have not seen use cases requiring those in libstd.
come up with a use case: notable/high quality libraries relying on a large subset of above routines
Hi, I'm currently implementing Apache arrow in arrow-zig and the only type I'm missing is Decimal!
I think binary fixed point routines belong into a library, which allows the user to only expose the functions needed and to do the type checks at comptime.
Can you elaborate on this? As a user it's much clearer to have language support and write:
const a: d2_1 = 34.1;
const b = a + @as(d2_1, 3.2);
than to have library support and write:
const D2_1 = decimal_lib.Decimal(2, 1);
const a = D2_1.init(34, 1);
const b = a.plus(D2_1.init(3, 2));
Hi, I'm currently implementing Apache arrow in arrow-zig and the only type I'm missing is Decimal!
Please have a look at the according tracking issue then: #15677. I have renamed it as to not keep confusing people, even though libgcc uses the other name. Stupid me confusing fixed point with float.
Can you elaborate on this? As a user it's much clearer to have language support and write:
I'll post the details in the open accessible binary fixed-point standard later today (20:40 UTC or so), from which you derive the optimal number representation in the same way for decimal (4 bit represent a digit in the unpacked version, packed one is more complex).
Plus my implementation idea for binary fixed point numbers, if you want to implement+upstream the unpacked decimal ones yourself. (nothing fancy, just some comptime number crunshing)
Free download of standard from iso website, search for "ISO/IEC TR 18037:2008".
See ISO/IEC TR 18037:2008 section "Fixed-point arithmetic" for context
like the specification of _Fract, _Accum, _Sat
.
To keep this documentation and implementation dense, we define abbreviations:
Let fri16
, fri32
, fri64
, fri128
and fru16
, fru32
, fru64
, fru128
be signed and unsigned fractionals.
Let aci16
, aci32
, aci64
, aci128
, acu16
, acu32
, acu64
, acu128
be signed and unsigned accumulators.
Let satfri16
, satfri32
,satfri64
,satfri128
be the corresponding saturated
signed fractionals and likewise satfruN
, sataciN
, satacuN
for
N in {16,32,64,128}
.
Implementation sketch
//! Binary fixed point number x = s * n * (b^f)
//! s sign, n nominator, b base = 2, f implicit factor as integer value
//! In contrast to floating point numbers, fixed-point infinites or NaNs are
//! not supported.
//!
//! ISO/IEC TR 18037:2008(E)
//! typeA binary fixed-point [0,1] or [-1,1]:
//! +-.DDDDDDDD
//! ^databits => _Fract
//! radix point
//! typeB binary fixed-point [0, int.fract] or [-int.fract, int.fract]
//! +-IIIIII.FFFFFFF
//! integral^fractional => _Accum
//! radix point
//!
//! Standard provides the following suggestions:
//! - fract_leN_t, fract_leM_leN_t [most confusing not accum_leM_leN_t]
//! to denote typeA with at least N data bits or M integral bits and N fractional bits.
//! - Define macro names like SFRACT_FBIT to inform about actual precisions etc.
//! Standard recommends:
//! - Macros FX_FRACT_OVERFLOW, FX_ACCUM_OVERFLOW specify overflow behavior.
//! - FX_FULL_PRECISION specifies precision, typically this is 1ulp, but
//! integer implementations may want to trade higher error for better performance.
//! - Exception for 1 and –1 Multiplication Results for hardware acceleration:
//! The product can be saturated (to long fract format) before being added into
//! the accumulator.
//!
//! This is an initial implementation, which does not support FX_FRACT_OVERFLOW,
//! FX_ACCUM_OVERFLOW via comptime-selection and neither FX_FULL_PRECISION.
const std = @import("std");
const assert = std.debug.assert;
const testing = std.testing;
const builtin = std.builtin;
const Sign = enum {
signed,
unsigned,
};
/// Returns binary fixed point number methods including comptime-introspection.
/// TODO: hardware detection
pub fn BinaryFixPointNumber(
comptime sign: std.builtin.Signedness,
comptime nominator_bit_cnt: u16,
comptime factor: comptime_int,
) type {
// comptime assert(@TypeOf(nominator) == integer);
// comptime assert(@TypeOf(base) == integer);
// comptime assert(@TypeOf(factor) == integer);
return struct {
// TODO
// - figure out how the hw instructions on x86 work
data: std.meta.Int(sign, nominator_bit_cnt + factor),
pub fn Sign() std.builtin.Signedness {
return sign;
}
pub fn Nominator() type {
return std.meta.Int(sign, nominator_bit_cnt);
}
pub fn Factor() type {
return factor;
}
// TODO nominator_offset ?
// conversion
};
}
test "sizes typeA binary floating point number" {
const Bin0 = BinaryFixPointNumber(.signed, 1, 0);
comptime {
try testing.expect(@typeInfo(Bin0).Struct.fields[0].type == i1);
// try testing.expect(@sizeOf(@typeInfo(Bin0).Struct.fields[0].type) == 1);
}
}
Addition, subtraction, multiplication etc work like twos complement with the exception that factor must be identical or we need to align/padd fixed point numbers accordingly. Afaiu, we can comptime check the factor and bit sizes at comptime for every operation.
The main drawback of providing syntax support is that its more costly than integers and the [overflow + rounding] behavior is hidden behind macros (I do assume its the same for decimals here), so I think this does not fit into Zig's Zen.
@matu3ba where are you getting these lists of symbols from?
@matu3ba where are you getting these lists of symbols from?
https://gcc.gnu.org/onlinedocs/gccint/Fixed-point-fractional-library-routines.html. I did add the link to the description.
Note: Maximum character limit reached, so this table is split into 4 tables. List taken from https://gcc.gnu.org/onlinedocs/gccint/Fixed-point-fractional-library-routines.html.
TODO
Documentation is maintained in https://github.com/matu3ba/matu3ba.github.io/tree/master/crt until review or I have a better place for it to reduce maintenance churn.