| // RUN: llvm-mc -triple i386-unknown-unknown %s > %t | |
| .macro check_expr | |
| .if ($0) != ($1) | |
| .abort Unexpected $0 != $1. | |
| .endif | |
| .endmacro | |
| .text | |
| g: | |
| h: | |
| j: | |
| k: | |
| .data | |
| check_expr !1 + 2, 2 | |
| check_expr !0, 1 | |
| check_expr ~0, -1 | |
| check_expr -1, ~0 | |
| check_expr +1, 1 | |
| check_expr 1 + 2, 3 | |
| check_expr 1 & 3, 1 | |
| check_expr 4 / 2, 2 | |
| check_expr 4 / -2, -2 | |
| check_expr 1 == 1, 1 | |
| check_expr 1 == 0, 0 | |
| check_expr 1 > 0, 1 | |
| check_expr 1 >= 1, 1 | |
| check_expr 1 < 2, 1 | |
| check_expr 1 <= 1, 1 | |
| check_expr 4 % 3, 1 | |
| check_expr 2 * 2, 4 | |
| check_expr 2 != 2, 0 | |
| check_expr 2 <> 2, 0 | |
| check_expr 1 | 2, 3 | |
| check_expr 1 << 1, 2 | |
| check_expr 2 >> 1, 1 | |
| check_expr (~0 >> 1), -1 | |
| check_expr 3 - 2, 1 | |
| check_expr 1 ^ 3, 2 | |
| check_expr 1 && 2, 1 | |
| check_expr 3 && 0, 0 | |
| check_expr 0 && 1, 0 | |
| check_expr 1 || 2, 1 | |
| check_expr 0 || 1, 1 | |
| check_expr 0 || 0, 0 | |
| check_expr 1 + 2 < 3 + 4, 1 | |
| check_expr 1 << 8 - 1, 128 | |
| .set c, 10 | |
| check_expr c + 1, 11 | |
| d = e + 10 | |
| .long d | |
| f = g - h + 5 | |
| .long f | |
| i = (j + 10) - (k + 2) | |
| .long i | |
| l = m - n + 4 | |
| .text | |
| m: | |
| n: | |
| nop | |
| movw $8, (42)+66(%eax) | |
| // "." support: | |
| _f0: | |
| L0: | |
| jmp L1 | |
| .long . - L0 | |
| L1: | |
| jmp A | |
| .long . - L1 |