about summary refs log tree commit diff
path: root/src/test/run-pass
diff options
context:
space:
mode:
authorAmanieu d'Antras <amanieu@gmail.com>2016-04-07 18:16:40 +0100
committerAmanieu d'Antras <amanieu@gmail.com>2018-02-28 18:23:54 +0000
commit02e021b6d4e1ae779dc538404a4fa0c54ed5f7ed (patch)
treec0ed1f66438e71b8653c4f4f7045d708c09d50df /src/test/run-pass
parent0ff9872b2280009f094af0df3dcdc542cc46a5fd (diff)
downloadrust-02e021b6d4e1ae779dc538404a4fa0c54ed5f7ed.tar.gz
rust-02e021b6d4e1ae779dc538404a4fa0c54ed5f7ed.zip
Add bitreverse intrinsic
Diffstat (limited to 'src/test/run-pass')
-rw-r--r--src/test/run-pass/intrinsics-integer.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/test/run-pass/intrinsics-integer.rs b/src/test/run-pass/intrinsics-integer.rs
index 4896f02da20..6e0712f6767 100644
--- a/src/test/run-pass/intrinsics-integer.rs
+++ b/src/test/run-pass/intrinsics-integer.rs
@@ -18,6 +18,7 @@ mod rusti {
         pub fn cttz<T>(x: T) -> T;
         pub fn cttz_nonzero<T>(x: T) -> T;
         pub fn bswap<T>(x: T) -> T;
+        pub fn bitreverse<T>(x: T) -> T;
     }
 }
 
@@ -138,5 +139,14 @@ pub fn main() {
         assert_eq!(bswap(0x0ABBCC0Di32), 0x0DCCBB0A);
         assert_eq!(bswap(0x0122334455667708u64), 0x0877665544332201);
         assert_eq!(bswap(0x0122334455667708i64), 0x0877665544332201);
+
+        assert_eq!(bitreverse(0x0Au8), 0x50);
+        assert_eq!(bitreverse(0x0Ai8), 0x50);
+        assert_eq!(bitreverse(0x0A0Cu16), 0x3050);
+        assert_eq!(bitreverse(0x0A0Ci16), 0x3050);
+        assert_eq!(bitreverse(0x0ABBCC0Eu32), 0x7033DD50);
+        assert_eq!(bitreverse(0x0ABBCC0Ei32), 0x7033DD50);
+        assert_eq!(bitreverse(0x0122334455667708u64), 0x10EE66AA22CC4480);
+        assert_eq!(bitreverse(0x0122334455667708i64), 0x10EE66AA22CC4480);
     }
 }