blob: 1cc96a3f41823558d163b1ebe1cd6988c197880a [file] [log] [blame]
Daniel Dunbarb4b53e52009-07-17 22:38:58 +00001// RUN: llvm-mc -triple i386-unknown-unknown %s > %t
Daniel Dunbarf4b830f2009-06-30 02:10:03 +00002
Daniel Dunbar6b13eff2010-10-25 20:18:41 +00003.macro check_expr
4 .if ($0) != ($1)
5 .abort Unexpected $0 != $1.
6 .endif
7.endmacro
8
Daniel Dunbarf4b830f2009-06-30 02:10:03 +00009 .text
10g:
11h:
12j:
13k:
14 .data
Daniel Dunbar6b13eff2010-10-25 20:18:41 +000015 check_expr !1 + 2, 2
16 check_expr !0, 1
Daniel Dunbar048a19a2010-10-25 20:18:49 +000017 check_expr ~0, -1
18 check_expr -1, ~0
Daniel Dunbar6b13eff2010-10-25 20:18:41 +000019 check_expr +1, 1
20 check_expr 1 + 2, 3
21 check_expr 1 & 3, 1
Daniel Dunbarbdf90d62010-10-25 20:18:53 +000022 check_expr 4 / 2, 2
23 check_expr 4 / -2, -2
Daniel Dunbar6b13eff2010-10-25 20:18:41 +000024 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 Dunbar048a19a2010-10-25 20:18:49 +000037 check_expr (~0 >> 1), -1
Daniel Dunbar6b13eff2010-10-25 20:18:41 +000038 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 Dunbar475839e2009-06-29 20:37:27 +000046
47 .set c, 10
Daniel Dunbar6b13eff2010-10-25 20:18:41 +000048 check_expr c + 1, 11
Daniel Dunbarf4b830f2009-06-30 02:10:03 +000049
50 d = e + 10
51 .long d
52
53 f = g - h + 5
54 .long f
55
56 i = (j + 10) - (k + 2)
57 .long i
58
Daniel Dunbar374d8bd2009-06-30 22:49:27 +000059 l = m - n + 4
60
61 .text
62m:
63n:
64 nop
65
Daniel Dunbarb4b53e52009-07-17 22:38:58 +000066
Chris Lattner75f265f2010-01-24 01:07:33 +000067 movw $8, (42)+66(%eax)
Chris Lattnerd3050352010-04-14 04:40:28 +000068
69// "." support:
70_f0:
71L0:
72 jmp L1
73 .long . - L0
74L1:
75 jmp A
76 .long . - L1