exprs.s 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // RUN: llvm-mc -triple i386-apple-darwin %s
  2. .macro check_expr
  3. .if ($0) != ($1)
  4. .abort Unexpected $0 != $1.
  5. .endif
  6. .endmacro
  7. .text
  8. g:
  9. h:
  10. j:
  11. k:
  12. .data
  13. check_expr !1 + 2, 2
  14. check_expr !0, 1
  15. check_expr ~0, -1
  16. check_expr -1, ~0
  17. check_expr +1, 1
  18. check_expr 1 + 2, 3
  19. check_expr 1 & 3, 1
  20. check_expr 4 / 2, 2
  21. check_expr 4 / -2, -2
  22. check_expr 1 == 1, 1
  23. check_expr 1 == 0, 0
  24. check_expr 1 > 0, 1
  25. check_expr 1 >= 1, 1
  26. check_expr 1 < 2, 1
  27. check_expr 1 <= 1, 1
  28. check_expr 4 % 3, 1
  29. check_expr 2 * 2, 4
  30. check_expr 2 != 2, 0
  31. check_expr 2 <> 2, 0
  32. check_expr 1 | 2, 3
  33. check_expr 1 << 1, 2
  34. check_expr 2 >> 1, 1
  35. check_expr (~0 >> 1), -1
  36. check_expr 3 - 2, 1
  37. check_expr 1 ^ 3, 2
  38. check_expr 1 && 2, 1
  39. check_expr 3 && 0, 0
  40. check_expr 0 && 1, 0
  41. check_expr 1 || 2, 1
  42. check_expr 0 || 1, 1
  43. check_expr 0 || 0, 0
  44. check_expr 1 + 2 < 3 + 4, 1
  45. check_expr 1 << 8 - 1, 128
  46. check_expr 3 * 9 - 2 * 9 + 1, 10
  47. .set c, 10
  48. check_expr c + 1, 11
  49. d = e + 10
  50. .long d
  51. f = g - h + 5
  52. .long f
  53. i = (j + 10) - (k + 2)
  54. .long i
  55. l = m - n + 4
  56. .text
  57. m:
  58. n:
  59. nop
  60. movw $8, (42)+66(%eax)
  61. // "." support:
  62. _f0:
  63. L0:
  64. jmp L1
  65. .long . - L0
  66. L1:
  67. jmp A
  68. .long . - L1