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