n64js/src/memaccess.bench.js
2024-01-07 10:13:09 +00:00

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({});