diff --git a/tests/regres/cmd/regres/main.go b/tests/regres/cmd/regres/main.go
index 6f014a3..f51b63e 100644
--- a/tests/regres/cmd/regres/main.go
+++ b/tests/regres/cmd/regres/main.go
@@ -80,7 +80,7 @@
 
 var (
 	numParallelTests = runtime.NumCPU()
-	llvmVersion      = llvm.Version{Major: 10}
+	llvmVersion      = llvm.Version{Major: 17, Point: 6}
 
 	cacheDir        = flag.String("cache", "cache", "path to the output cache directory")
 	gerritEmail     = flag.String("email", "$SS_REGRES_EMAIL", "gerrit email address for posting regres results")
diff --git a/tests/regres/llvm/llvm.go b/tests/regres/llvm/llvm.go
index 8b55964..7d1d61b 100644
--- a/tests/regres/llvm/llvm.go
+++ b/tests/regres/llvm/llvm.go
@@ -32,7 +32,7 @@
 	"swiftshader.googlesource.com/SwiftShader/tests/regres/util"
 )
 
-const maxLLVMVersion = 10
+const maxLLVMVersion = 17
 
 // Version holds the build version information of an LLVM toolchain.
 type Version struct {
@@ -83,20 +83,22 @@
 		return nil, fmt.Errorf("Could not download LLVM from %v: %v", url, err)
 	}
 
-	sigfile, err := os.Open(sig)
-	if err != nil {
-		return nil, fmt.Errorf("Couldn't open file '%s': %v", sig, err)
-	}
-	defer sigfile.Close()
+	if sig != "" {
+		sigfile, err := os.Open(sig)
+		if err != nil {
+			return nil, fmt.Errorf("Couldn't open file '%s': %v", sig, err)
+		}
+		defer sigfile.Close()
 
-	keyfile, err := os.Open(key)
-	if err != nil {
-		return nil, fmt.Errorf("Couldn't open file '%s': %v", key, err)
-	}
-	defer keyfile.Close()
+		keyfile, err := os.Open(key)
+		if err != nil {
+			return nil, fmt.Errorf("Couldn't open file '%s': %v", key, err)
+		}
+		defer keyfile.Close()
 
-	if err := util.CheckPGP(bytes.NewReader(content), sigfile, keyfile); err != nil {
-		return nil, err
+		if err := util.CheckPGP(bytes.NewReader(content), sigfile, keyfile); err != nil {
+			return nil, err
+		}
 	}
 	return content, nil
 }
@@ -123,6 +125,20 @@
 		default:
 			return "", "", "", fmt.Errorf("Unsupported OS: %v", os)
 		}
+	case Version{17, 0, 0}:
+		switch os {
+		case "linux":
+			url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang+llvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz"
+			return
+		case "darwin":
+			url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang+llvm-17.0.6-arm64-apple-darwin22.0.tar.xz"
+			return
+		case "windows":
+			url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/LLVM-17.0.6-win64.exe"
+			return
+		default:
+			return "", "", "", fmt.Errorf("Unsupported OS: %v", os)
+		}
 	default:
 		return "", "", "", fmt.Errorf("Unknown download for LLVM %v", v)
 	}
