Skip to content

Commit 6d2e82b

Browse files
committed
update rotate operation doc
1 parent a6620a4 commit 6d2e82b

File tree

1 file changed

+3
-2
lines changed
  • compiler/rustc_codegen_gcc/src/intrinsic

1 file changed

+3
-2
lines changed

compiler/rustc_codegen_gcc/src/intrinsic/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,10 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'gcc, 'tc
493493
}
494494
sym::bitreverse => self.bit_reverse(width, args[0].immediate()),
495495
sym::rotate_left | sym::rotate_right => {
496-
// TODO(antoyo): implement using algorithm from:
496+
// Using optimized branchless algorithm from:
497497
// https://blog.regehr.org/archives/1063
498-
// for other platforms.
498+
// This implementation uses the pattern (x<<n) | (x>>(-n&(width-1)))
499+
// which generates efficient code for other platforms.
499500
let is_left = name == sym::rotate_left;
500501
let val = args[0].immediate();
501502
let raw_shift = args[1].immediate();

0 commit comments

Comments
 (0)