mirror of
https://github.com/hulkholden/n64js.git
synced 2024-06-16 02:57:21 -04:00
44 lines
910 B
JavaScript
44 lines
910 B
JavaScript
import { run, bench, group } from 'mitata';
|
|
|
|
const ab = new ArrayBuffer(8);
|
|
const s8 = new Int8Array(ab);
|
|
const s16 = new Int16Array(ab);
|
|
const s32 = new Int32Array(ab);
|
|
const u8 = new Uint8Array(ab);
|
|
const u16 = new Uint16Array(ab);
|
|
const u32 = new Uint32Array(ab);
|
|
|
|
let sum;
|
|
|
|
group('u32', () => {
|
|
bench('signed to unsigned shift', () => {
|
|
sum += s32[0] >>> 0;
|
|
});
|
|
bench('unsigned to signed shift', () => {
|
|
sum += u32[0] >> 0;
|
|
});
|
|
bench('unsigned to signed or zero', () => {
|
|
sum += u32[0] | 0;
|
|
});
|
|
});
|
|
|
|
group('u16', () => {
|
|
bench('signed to unsigned mask', () => {
|
|
sum += s16[0] & 0xffff;
|
|
});
|
|
bench('unsigned to signed shift', () => {
|
|
sum += (u16[0] << 16) >> 16;
|
|
});
|
|
});
|
|
|
|
group('u8', () => {
|
|
bench('signed to unsigned mask', () => {
|
|
sum += s8[0] & 0xff;
|
|
});
|
|
bench('unsigned to signed shift', () => {
|
|
sum += (u8[0] << 24) >> 25;
|
|
});
|
|
});
|
|
|
|
await run({});
|