Example #1
0
        OpTime ShiftLeft256x16uRef(int blocks, int cycles)
        {
            var blocklen   = Vec256 <ushort> .Length;
            var opcount    = blocks * cycles * blocklen;
            var shiftRange = closed <byte>(2, 14);

            var sw      = stopwatch(false);
            var src     = Random.Stream <ushort>();
            var offsets = Random.Stream(shiftRange);

            for (var cycle = 0; cycle < cycles; cycle++)
            {
                for (var block = 0; block < blocks; block++)
                {
                    var x      = src.TakeSpan(blocklen);
                    var offset = offsets.First();

                    sw.Start();
                    BitRef.ShiftL(x, offset);
                    sw.Stop();
                }
            }
            return(OpTime.Define(opcount, snapshot(sw), "slli16uRef"));
        }