Daniel Dunbar | b4b53e5 | 2009-07-17 22:38:58 +0000 | [diff] [blame] | 1 | // RUN: llvm-mc -triple i386-unknown-unknown %s > %t |
Daniel Dunbar | f4b830f | 2009-06-30 02:10:03 +0000 | [diff] [blame] | 2 | |
Daniel Dunbar | 6b13eff | 2010-10-25 20:18:41 +0000 | [diff] [blame] | 3 | .macro check_expr |
| 4 | .if ($0) != ($1) |
| 5 | .abort Unexpected $0 != $1. |
| 6 | .endif |
| 7 | .endmacro |
Jim Grosbach | 2f4bdc5 | 2011-08-20 16:10:09 +0000 | [diff] [blame] | 8 | |
Daniel Dunbar | f4b830f | 2009-06-30 02:10:03 +0000 | [diff] [blame] | 9 | .text |
| 10 | g: |
| 11 | h: |
| 12 | j: |
Jim Grosbach | 2f4bdc5 | 2011-08-20 16:10:09 +0000 | [diff] [blame] | 13 | k: |
Daniel Dunbar | f4b830f | 2009-06-30 02:10:03 +0000 | [diff] [blame] | 14 | .data |
Daniel Dunbar | 6b13eff | 2010-10-25 20:18:41 +0000 | [diff] [blame] | 15 | check_expr !1 + 2, 2 |
| 16 | check_expr !0, 1 |
Daniel Dunbar | 048a19a | 2010-10-25 20:18:49 +0000 | [diff] [blame] | 17 | check_expr ~0, -1 |
| 18 | check_expr -1, ~0 |
Daniel Dunbar | 6b13eff | 2010-10-25 20:18:41 +0000 | [diff] [blame] | 19 | check_expr +1, 1 |
| 20 | check_expr 1 + 2, 3 |
| 21 | check_expr 1 & 3, 1 |
Daniel Dunbar | bdf90d6 | 2010-10-25 20:18:53 +0000 | [diff] [blame] | 22 | check_expr 4 / 2, 2 |
| 23 | check_expr 4 / -2, -2 |
Daniel Dunbar | 6b13eff | 2010-10-25 20:18:41 +0000 | [diff] [blame] | 24 | check_expr 1 == 1, 1 |
| 25 | check_expr 1 == 0, 0 |
| 26 | check_expr 1 > 0, 1 |
| 27 | check_expr 1 >= 1, 1 |
| 28 | check_expr 1 < 2, 1 |
| 29 | check_expr 1 <= 1, 1 |
| 30 | check_expr 4 % 3, 1 |
| 31 | check_expr 2 * 2, 4 |
| 32 | check_expr 2 != 2, 0 |
| 33 | check_expr 2 <> 2, 0 |
| 34 | check_expr 1 | 2, 3 |
| 35 | check_expr 1 << 1, 2 |
| 36 | check_expr 2 >> 1, 1 |
Daniel Dunbar | 048a19a | 2010-10-25 20:18:49 +0000 | [diff] [blame] | 37 | check_expr (~0 >> 1), -1 |
Daniel Dunbar | 6b13eff | 2010-10-25 20:18:41 +0000 | [diff] [blame] | 38 | check_expr 3 - 2, 1 |
| 39 | check_expr 1 ^ 3, 2 |
| 40 | check_expr 1 && 2, 1 |
| 41 | check_expr 3 && 0, 0 |
| 42 | check_expr 0 && 1, 0 |
| 43 | check_expr 1 || 2, 1 |
| 44 | check_expr 0 || 1, 1 |
| 45 | check_expr 0 || 0, 0 |
Daniel Dunbar | b1e0f76 | 2010-10-25 20:18:56 +0000 | [diff] [blame] | 46 | check_expr 1 + 2 < 3 + 4, 1 |
Jim Grosbach | fbe1681 | 2011-08-20 16:24:13 +0000 | [diff] [blame] | 47 | check_expr 1 << 8 - 1, 128 |
Jim Grosbach | 2f4bdc5 | 2011-08-20 16:10:09 +0000 | [diff] [blame] | 48 | |
Daniel Dunbar | 475839e | 2009-06-29 20:37:27 +0000 | [diff] [blame] | 49 | .set c, 10 |
Daniel Dunbar | 6b13eff | 2010-10-25 20:18:41 +0000 | [diff] [blame] | 50 | check_expr c + 1, 11 |
Daniel Dunbar | f4b830f | 2009-06-30 02:10:03 +0000 | [diff] [blame] | 51 | |
| 52 | d = e + 10 |
| 53 | .long d |
| 54 | |
| 55 | f = g - h + 5 |
| 56 | .long f |
| 57 | |
| 58 | i = (j + 10) - (k + 2) |
| 59 | .long i |
Jim Grosbach | 2f4bdc5 | 2011-08-20 16:10:09 +0000 | [diff] [blame] | 60 | |
Daniel Dunbar | 374d8bd | 2009-06-30 22:49:27 +0000 | [diff] [blame] | 61 | l = m - n + 4 |
Jim Grosbach | 2f4bdc5 | 2011-08-20 16:10:09 +0000 | [diff] [blame] | 62 | |
Daniel Dunbar | 374d8bd | 2009-06-30 22:49:27 +0000 | [diff] [blame] | 63 | .text |
| 64 | m: |
| 65 | n: |
| 66 | nop |
Jim Grosbach | 2f4bdc5 | 2011-08-20 16:10:09 +0000 | [diff] [blame] | 67 | |
| 68 | |
Chris Lattner | 75f265f | 2010-01-24 01:07:33 +0000 | [diff] [blame] | 69 | movw $8, (42)+66(%eax) |
Chris Lattner | d305035 | 2010-04-14 04:40:28 +0000 | [diff] [blame] | 70 | |
| 71 | // "." support: |
| 72 | _f0: |
| 73 | L0: |
| 74 | jmp L1 |
| 75 | .long . - L0 |
| 76 | L1: |
| 77 | jmp A |
| 78 | .long . - L1 |