- BlackBox: name: Clash.Sized.Internal.Unsigned.rotateL# kind: Declaration type: 'rotateL# :: KnownNat n => Unsigned n -> Int -> Unsigned n' template: |- // rotateL begin logic [2*~SIZE[~TYPO]-1:0] ~GENSYM[u][0]; assign ~SYM[0] = {~ARG[1],~ARG[1]} << (~ARG[2] % ~SIZE[~TYPO]); assign ~RESULT = ~SYM[0][2*~SIZE[~TYPO]-1 : ~SIZE[~TYPO]]; // rotateL end - BlackBox: name: Clash.Sized.Internal.Unsigned.rotateR# kind: Declaration type: 'rotateR# :: KnownNat n => Unsigned n -> Int -> Unsigned n' template: |- // rotateR begin logic [2*~SIZE[~TYPO]-1:0] ~GENSYM[u][0]; assign ~SYM[0] = {~ARG[1],~ARG[1]} >> (~ARG[2] % ~SIZE[~TYPO]); assign ~RESULT = ~SYM[0][~SIZE[~TYPO]-1 : 0]; // rotateR end