fix checks for metal when running under wasm (#24637)
When under wasm we can't check for metal by looking at backend because
it will always be WEBGPU.
Because of this we'll take the DP4A path on metal that results in
sub-optimal performance.
Use vendor to check for metal instead.