]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/bitwise.rs
auto merge of #9522 : steveklabnik/rust/doc_std_opts, r=alexcrichton
[rust.git] / src / test / run-pass / bitwise.rs
1 // -*- rust -*-
2 // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
3 // file at the top-level directory of this distribution and at
4 // http://rust-lang.org/COPYRIGHT.
5 //
6 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
7 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
8 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9 // option. This file may not be copied, modified, or distributed
10 // except according to those terms.
11
12
13 #[cfg(target_arch = "x86")]
14 #[cfg(target_arch = "arm")]
15 fn target() {
16     assert_eq!(-1000 as uint >> 3u, 536870787u);
17 }
18
19 #[cfg(target_arch = "x86_64")]
20 fn target() {
21     assert_eq!(-1000 as uint >> 3u, 2305843009213693827u);
22 }
23
24 fn general() {
25     let mut a: int = 1;
26     let mut b: int = 2;
27     a ^= b;
28     b ^= a;
29     a = a ^ b;
30     info2!("{}", a);
31     info2!("{}", b);
32     assert_eq!(b, 1);
33     assert_eq!(a, 2);
34     assert_eq!(!0xf0 & 0xff, 0xf);
35     assert_eq!(0xf0 | 0xf, 0xff);
36     assert_eq!(0xf << 4, 0xf0);
37     assert_eq!(0xf0 >> 4, 0xf);
38     assert_eq!(-16 >> 2, -4);
39     assert_eq!(0b1010_1010 | 0b0101_0101, 0xff);
40 }
41
42 pub fn main() {
43     general();
44     target();
45 }