mirror of
https://github.com/hulkholden/n64js.git
synced 2024-06-16 02:57:21 -04:00
Add benchmark for signed/unsigned conversions.
This commit is contained in:
parent
293e7c907c
commit
21c6d6d55f
43
src/memaccess.bench.js
Normal file
43
src/memaccess.bench.js
Normal file
|
@ -0,0 +1,43 @@
|
|||
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({});
|
Loading…
Reference in a new issue