isel3.ssa 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. export function w $slt(w %x, w %y) {
  2. @start
  3. %r =w csltw %x, %y
  4. ret %r
  5. }
  6. export function w $sle(w %x, w %y) {
  7. @start
  8. %r =w cslew %x, %y
  9. ret %r
  10. }
  11. export function w $sgt(w %x, w %y) {
  12. @start
  13. %r =w csgtw %x, %y
  14. ret %r
  15. }
  16. export function w $sge(w %x, w %y) {
  17. @start
  18. %r =w csgew %x, %y
  19. ret %r
  20. }
  21. export function w $ult(w %x, w %y) {
  22. @start
  23. %r =w cultw %x, %y
  24. ret %r
  25. }
  26. export function w $ule(w %x, w %y) {
  27. @start
  28. %r =w culew %x, %y
  29. ret %r
  30. }
  31. export function w $ugt(w %x, w %y) {
  32. @start
  33. %r =w cugtw %x, %y
  34. ret %r
  35. }
  36. export function w $uge(w %x, w %y) {
  37. @start
  38. %r =w cugew %x, %y
  39. ret %r
  40. }
  41. export function w $eq(w %x, w %y) {
  42. @start
  43. %r =w ceqw %x, %y
  44. ret %r
  45. }
  46. export function w $ne(w %x, w %y) {
  47. @start
  48. %r =w cnew %x, %y
  49. ret %r
  50. }
  51. # >>> driver
  52. # #include <math.h>
  53. # extern int slt(int, int);
  54. # extern int sle(int, int);
  55. # extern int sgt(int, int);
  56. # extern int sge(int, int);
  57. # extern int ult(unsigned, unsigned);
  58. # extern int ule(unsigned, unsigned);
  59. # extern int ugt(unsigned, unsigned);
  60. # extern int uge(unsigned, unsigned);
  61. # extern int eq(unsigned, unsigned);
  62. # extern int ne(unsigned, unsigned);
  63. # int main(void) {
  64. # /* LessThan Equal GreaterThan */
  65. # return !slt(-1, 0) + slt(0, 0) + slt(0, -1)
  66. # + !sle(-1, 0) + !sle(0, 0) + sle(0, -1)
  67. # + sgt(-1, 0) + sgt(0, 0) + !sgt(0, -1)
  68. # + sge(-1, 0) + !sge(0, 0) + !sge(0, -1)
  69. # + !ult(0, -1) + ult(0, 0) + ult(-1, 0)
  70. # + !ule(0, -1) + !ule(0, 0) + ule(-1, 0)
  71. # + ugt(0, -1) + ugt(0, 0) + !ugt(-1, 0)
  72. # + uge(0, -1) + !uge(0, 0) + !uge(-1, 0)
  73. # + eq(0, 1) + !eq(0, 0) + eq(1, 0)
  74. # + !ne(0, 1) + ne(0, 0) + !ne(1, 0)
  75. # ;
  76. # }
  77. # <<<