Verify that cranelift-wasm can translate SIMD instructions
To do so we must use a new version of wabt-rs that allows us to enable features (e.g. SIMD) when translating the wasmtests
This commit is contained in:
@@ -10,7 +10,7 @@ use std::io::prelude::*;
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use target_lexicon::triple;
|
use target_lexicon::triple;
|
||||||
use wabt::wat2wasm;
|
use wabt::{wat2wasm_with_features, Features};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn testsuite() {
|
fn testsuite() {
|
||||||
@@ -61,7 +61,9 @@ fn handle_module(path: &Path, flags: &Flags, return_mode: ReturnMode) {
|
|||||||
Some("wasm") => read_file(path).expect("error reading wasm file"),
|
Some("wasm") => read_file(path).expect("error reading wasm file"),
|
||||||
Some("wat") => {
|
Some("wat") => {
|
||||||
let wat = read_file(path).expect("error reading wat file");
|
let wat = read_file(path).expect("error reading wat file");
|
||||||
match wat2wasm(&wat) {
|
let mut features = Features::new();
|
||||||
|
features.enable_all();
|
||||||
|
match wat2wasm_with_features(&wat, features) {
|
||||||
Ok(wasm) => wasm,
|
Ok(wasm) => wasm,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
panic!("error converting wat to wasm: {:?}", e);
|
panic!("error converting wat to wasm: {:?}", e);
|
||||||
|
|||||||
23
cranelift/wasmtests/simd.wat
Normal file
23
cranelift/wasmtests/simd.wat
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
(module
|
||||||
|
(func $test_splat (result i32)
|
||||||
|
i32.const 42
|
||||||
|
i32x4.splat
|
||||||
|
i32x4.extract_lane 0
|
||||||
|
)
|
||||||
|
|
||||||
|
(func $test_insert_lane (result i32)
|
||||||
|
v128.const i64x2 0 0
|
||||||
|
i32.const 99
|
||||||
|
i32x4.replace_lane 1
|
||||||
|
i32x4.extract_lane 1
|
||||||
|
)
|
||||||
|
|
||||||
|
(func $test_const (result i32)
|
||||||
|
v128.const i32x4 1 2 3 4
|
||||||
|
i32x4.extract_lane 3
|
||||||
|
)
|
||||||
|
|
||||||
|
(export "test_splat" (func $test_splat))
|
||||||
|
(export "test_insert_lane" (func $test_insert_lane))
|
||||||
|
(export "test_const" (func $test_const))
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user