blob: df075f85ecf56ae9bc9dc43edd91620a299c3340 [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
Jim Grosbach2f4bdc52011-08-20 16:10:09 +00008
Daniel Dunbarf4b830f2009-06-30 02:10:03 +00009 .text
10g:
11h:
12j:
Jim Grosbach2f4bdc52011-08-20 16:10:09 +000013k:
Daniel Dunbarf4b830f2009-06-30 02:10:03 +000014 .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 Dunbarb1e0f762010-10-25 20:18:56 +000046 check_expr 1 + 2 < 3 + 4, 1
Jim Grosbachfbe16812011-08-20 16:24:13 +000047 check_expr 1 << 8 - 1, 128
Jim Grosbach2f4bdc52011-08-20 16:10:09 +000048
Daniel Dunbar475839e2009-06-29 20:37:27 +000049 .set c, 10
Daniel Dunbar6b13eff2010-10-25 20:18:41 +000050 check_expr c + 1, 11
Daniel Dunbarf4b830f2009-06-30 02:10:03 +000051
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 Grosbach2f4bdc52011-08-20 16:10:09 +000060
Daniel Dunbar374d8bd2009-06-30 22:49:27 +000061 l = m - n + 4
Jim Grosbach2f4bdc52011-08-20 16:10:09 +000062
Daniel Dunbar374d8bd2009-06-30 22:49:27 +000063 .text
64m:
65n:
66 nop
Jim Grosbach2f4bdc52011-08-20 16:10:09 +000067
68
Chris Lattner75f265f2010-01-24 01:07:33 +000069 movw $8, (42)+66(%eax)
Chris Lattnerd3050352010-04-14 04:40:28 +000070
71// "." support:
72_f0:
73L0:
74 jmp L1
75 .long . - L0
76L1:
77 jmp A
78 .long . - L1