Skip to content

Commit

Permalink
util: simplify SIMD setup
Browse files Browse the repository at this point in the history
PR-URL: nodejs#8579
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com>
  • Loading branch information
danyshaanan authored and addaleax committed Sep 20, 2016
1 parent 9391cb0 commit 5f29947
Showing 1 changed file with 16 additions and 28 deletions.
44 changes: 16 additions & 28 deletions lib/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,35 +38,23 @@ if (typeof global.SIMD === 'object' && global.SIMD !== null) {

const SIMD = global.SIMD; // Pacify eslint.

if (typeof SIMD.Bool16x8 === 'function')
simdFormatters.set(SIMD.Bool16x8, make(SIMD.Bool16x8.extractLane, 8));

if (typeof SIMD.Bool32x4 === 'function')
simdFormatters.set(SIMD.Bool32x4, make(SIMD.Bool32x4.extractLane, 4));

if (typeof SIMD.Bool8x16 === 'function')
simdFormatters.set(SIMD.Bool8x16, make(SIMD.Bool8x16.extractLane, 16));

if (typeof SIMD.Float32x4 === 'function')
simdFormatters.set(SIMD.Float32x4, make(SIMD.Float32x4.extractLane, 4));

if (typeof SIMD.Int16x8 === 'function')
simdFormatters.set(SIMD.Int16x8, make(SIMD.Int16x8.extractLane, 8));

if (typeof SIMD.Int32x4 === 'function')
simdFormatters.set(SIMD.Int32x4, make(SIMD.Int32x4.extractLane, 4));

if (typeof SIMD.Int8x16 === 'function')
simdFormatters.set(SIMD.Int8x16, make(SIMD.Int8x16.extractLane, 16));

if (typeof SIMD.Uint16x8 === 'function')
simdFormatters.set(SIMD.Uint16x8, make(SIMD.Uint16x8.extractLane, 8));

if (typeof SIMD.Uint32x4 === 'function')
simdFormatters.set(SIMD.Uint32x4, make(SIMD.Uint32x4.extractLane, 4));
const countPerType = {
Bool16x8: 8,
Bool32x4: 4,
Bool8x16: 16,
Float32x4: 4,
Int16x8: 8,
Int32x4: 4,
Int8x16: 16,
Uint16x8: 8,
Uint32x4: 4,
Uint8x16: 16
};

if (typeof SIMD.Uint8x16 === 'function')
simdFormatters.set(SIMD.Uint8x16, make(SIMD.Uint8x16.extractLane, 16));
for (const key in countPerType) {
const type = SIMD[key];
simdFormatters.set(type, make(type.extractLane, countPerType[key]));
}
}

function tryStringify(arg) {
Expand Down

0 comments on commit 5f29947

Please sign in to comment.