]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
RISC-V: Refactor the or pattern to switch cases
authorPan Li <pan2.li@intel.com>
Sun, 14 May 2023 08:15:11 +0000 (16:15 +0800)
committerPan Li <pan2.li@intel.com>
Sun, 14 May 2023 09:03:25 +0000 (17:03 +0800)
This patch refactor the pattern A or B or C or D, to the switch case for
easy add/remove new types, as well as human reading friendly.

Before this patch:
return A || B || C || D;

After this patch:
switch (type)
  {
    case A:
    case B:
    case C:
    case D:
      return true;
    default:
      return false;
  }

Signed-off-by: Pan Li <pan2.li@intel.com>
gcc/ChangeLog:

* config/riscv/riscv-vector-builtins.cc (required_extensions_p):
Refactor the or pattern to switch cases.

gcc/config/riscv/riscv-vector-builtins.cc

index 4117897c6c9151ea78aca60aab0bf29b997f53f4..0f56f29f7aa08785373cbe24c3723944613ce1d9 100644 (file)
@@ -2606,17 +2606,32 @@ register_vector_type (vector_type_index type)
 static bool
 required_extensions_p (enum rvv_base_type type)
 {
-  return type == RVV_BASE_eew8_index || type == RVV_BASE_eew16_index
-        || type == RVV_BASE_eew32_index || type == RVV_BASE_eew64_index
-        || type == RVV_BASE_float_vector
-        || type == RVV_BASE_double_trunc_float_vector
-        || type == RVV_BASE_double_trunc_vector
-        || type == RVV_BASE_widen_lmul1_vector
-        || type == RVV_BASE_eew8_interpret || type == RVV_BASE_eew16_interpret
-        || type == RVV_BASE_eew32_interpret || type == RVV_BASE_eew64_interpret
-        || type == RVV_BASE_vlmul_ext_x2 || type == RVV_BASE_vlmul_ext_x4
-        || type == RVV_BASE_vlmul_ext_x8 || type == RVV_BASE_vlmul_ext_x16
-        || type == RVV_BASE_vlmul_ext_x32 || type == RVV_BASE_vlmul_ext_x64;
+  switch (type)
+    {
+      case RVV_BASE_eew8_index:
+      case RVV_BASE_eew16_index:
+      case RVV_BASE_eew32_index:
+      case RVV_BASE_eew64_index:
+      case RVV_BASE_float_vector:
+      case RVV_BASE_double_trunc_float_vector:
+      case RVV_BASE_double_trunc_vector:
+      case RVV_BASE_widen_lmul1_vector:
+      case RVV_BASE_eew8_interpret:
+      case RVV_BASE_eew16_interpret:
+      case RVV_BASE_eew32_interpret:
+      case RVV_BASE_eew64_interpret:
+      case RVV_BASE_vlmul_ext_x2:
+      case RVV_BASE_vlmul_ext_x4:
+      case RVV_BASE_vlmul_ext_x8:
+      case RVV_BASE_vlmul_ext_x16:
+      case RVV_BASE_vlmul_ext_x32:
+      case RVV_BASE_vlmul_ext_x64:
+       return true;
+      default:
+       return false;
+    }
+
+  gcc_unreachable ();
 }
 
 static uint64_t