]> git.lizzy.rs Git - rust.git/commitdiff
Implement rotate_{left,right} intrinsics
authorbjorn3 <bjorn3@users.noreply.github.com>
Fri, 16 Nov 2018 18:50:02 +0000 (19:50 +0100)
committerbjorn3 <bjorn3@users.noreply.github.com>
Fri, 16 Nov 2018 18:50:23 +0000 (19:50 +0100)
src/intrinsics.rs

index fde28eb3e36d9e9350954311aa0bd63a1c4916ed..b59e1c6631b4df8ab8bd700f031811021d066a43 100644 (file)
@@ -281,6 +281,16 @@ pub fn codegen_intrinsic_call<'a, 'tcx: 'a>(
             };
             ret.write_cvalue(fx, res);
         };
+        rotate_left, <T>(v x, v y) {
+            let layout = fx.layout_of(T);
+            let res = fx.bcx.ins().rotl(x, y);
+            ret.write_cvalue(fx, CValue::ByVal(res, layout));
+        };
+        rotate_right, <T>(v x, v y) {
+            let layout = fx.layout_of(T);
+            let res = fx.bcx.ins().rotr(x, y);
+            ret.write_cvalue(fx, CValue::ByVal(res, layout));
+        };
         offset, (v base, v offset) {
             let res = fx.bcx.ins().iadd(base, offset);
             ret.write_cvalue(fx, CValue::ByVal(res, args[0].layout()));