CI: Only run OpenCL tests when we need to

Like the other drivers, set up rules so we don't run piglit-cl unless we
need to.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3695
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7330>
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 46e790e..fbd27c8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1037,6 +1037,7 @@
   extends:
     - .piglit-test
     - .test-cl
+    - .llvmpipe-cl-rules
   variables:
     LP_CL: 1
     LP_NUM_THREADS: 1
diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml
index b45751c..71f5469 100644
--- a/.gitlab-ci/test-source-dep.yml
+++ b/.gitlab-ci/test-source-dep.yml
@@ -78,6 +78,30 @@
       when: on_success
     - when: never
 
+.llvmpipe-cl-rules:
+  stage: llvmpipe
+  rules:
+    - *ignore_scheduled_pipelines
+    - changes:
+      - .gitlab-ci.yml
+      - .gitlab-ci/**/*
+      - meson.build
+      - include/**/*
+      - src/compiler/**/*
+      - src/include/**/*
+      - src/util/**/*
+      when: on_success
+    - changes:
+        *gallium_core_file_list
+      when: on_success
+    - changes:
+        *llvmpipe_file_list
+      when: on_success
+    - changes: &clover_file_list
+      - src/gallium/frontends/clover/**/*
+      when: on_success
+    - when: never
+
 .freedreno-rules:
   stage: freedreno
   rules: