41 lines
1002 B
JavaScript
41 lines
1002 B
JavaScript
|
// Copyright 2024 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
// Flags: --no-enable-sse4-2
|
||
|
|
||
|
d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');
|
||
|
|
||
|
let builder = new WasmModuleBuilder();
|
||
|
let sig = builder.addType(kSig_i_v);
|
||
|
|
||
|
let instructions = [
|
||
|
'I32x4MinU',
|
||
|
'I16x8MinU',
|
||
|
'I16x8UConvertI32x4',
|
||
|
'I8x16MinS',
|
||
|
'I32x4MinS',
|
||
|
'I8x16MaxS',
|
||
|
'I32x4MaxS',
|
||
|
'I16x8MaxU',
|
||
|
'I32x4MaxU',
|
||
|
'I32x4Mul'
|
||
|
];
|
||
|
|
||
|
// Add a simple function for each instruction.
|
||
|
for (let instr of instructions) {
|
||
|
builder.addFunction(`${instr}`, sig).addBody([
|
||
|
kSimdPrefix, kExprS128Const, ...(new Array(16).fill(0)),
|
||
|
kSimdPrefix, kExprS128Const, ...(new Array(16).fill(0)),
|
||
|
...SimdInstr(eval('kExpr' + `${instr}`)),
|
||
|
kSimdPrefix, kExprI8x16AllTrue,
|
||
|
]).exportFunc();
|
||
|
}
|
||
|
|
||
|
let instance = builder.instantiate();
|
||
|
|
||
|
// Call each function.
|
||
|
for (let instr of instructions) {
|
||
|
instance.exports[instr]();
|
||
|
}
|