diff --git a/src/runtime/metal/metal_module.mm b/src/runtime/metal/metal_module.mm
index 4814d986b908c3e46d0588e8fdd1e07d9c766404..4d9ffec84e45e55eb5099475521dac2c100db9e3 100644
--- a/src/runtime/metal/metal_module.mm
+++ b/src/runtime/metal/metal_module.mm
@@ -83,8 +83,11 @@ class MetalModuleNode final :public runtime::ModuleNode {
     if (e.lib == nil) {
       if (fmt_ == "metal") {
         MTLCompileOptions *opts = [MTLCompileOptions alloc];
-        opts.languageVersion = MTLLanguageVersion2_0;
-        opts.fastMathEnabled = YES;
+        // Use the default setting for now.
+        // by default most recent version is used.
+        // opts.languageVersion = MTLLanguageVersion2_0;
+        // opts.fastMathEnabled = YES;
+        opts = nil;
         e.lib = [
             w->devices[device_id]
              newLibraryWithSource:[NSString stringWithUTF8String:data_.c_str()]
diff --git a/tests/python/integration/test_ewise.py b/tests/python/integration/test_ewise.py
index ee880ed1d9fbcc6a83b714147633029ba119c69a..3ad464f75faaf59dc5736921aaccce6bf85241de 100644
--- a/tests/python/integration/test_ewise.py
+++ b/tests/python/integration/test_ewise.py
@@ -98,8 +98,8 @@ def test_popcount():
         check_device("llvm")
         check_device("cuda")
         check_device("opencl")
-        check_device("metal")
         if dtype == "uint32":
+            check_device("metal")
             check_device("vulkan")
     run('uint32')
     run('uint64')
@@ -146,9 +146,10 @@ def test_add():
                 c.asnumpy(), a.asnumpy() + b.asnumpy(), rtol=1e-6)
 
         check_device("opencl")
-        check_device("metal")
         check_device("cuda")
-        check_device("vulkan")
+        if dtype == "float32":
+            check_device("metal")
+            check_device("vulkan")
 
     run("float32")
     run("int32")