@@ -21,7 +21,7 @@ mod stacks;
2121
2222use self :: diff_wasmtime:: WasmtimeInstance ;
2323use self :: engine:: { DiffEngine , DiffInstance } ;
24- use crate :: generators:: { self , DiffValue , DiffValueType } ;
24+ use crate :: generators:: { self , CompilerStrategy , DiffValue , DiffValueType } ;
2525use crate :: single_module_fuzzer:: KnownValid ;
2626use arbitrary:: Arbitrary ;
2727pub use stacks:: check_stacks;
@@ -672,6 +672,25 @@ pub fn wast_test(mut fuzz_config: generators::Config, test: generators::WastTest
672672 return ;
673673 }
674674
675+ // Winch requires AVX and AVX2 for SIMD tests to pass so don't run the test
676+ // if either isn't enabled.
677+ if fuzz_config. wasmtime . compiler_strategy == CompilerStrategy :: Winch
678+ && test. config . simd ( )
679+ && ( fuzz_config
680+ . wasmtime
681+ . codegen_flag ( "has_avx" )
682+ . is_some_and ( |value| value == "false" )
683+ || fuzz_config
684+ . wasmtime
685+ . codegen_flag ( "has_avx2" )
686+ . is_some_and ( |value| value == "false" ) )
687+ {
688+ log:: warn!(
689+ "Skipping Wast test because Winch doesn't support SIMD tests with AVX or AVX2 disabled"
690+ ) ;
691+ return ;
692+ }
693+
675694 // Fuel and epochs don't play well with threads right now, so exclude any
676695 // thread-spawning test if it looks like threads are spawned in that case.
677696 if fuzz_config. wasmtime . consume_fuel || fuzz_config. wasmtime . epoch_interruption {
0 commit comments