I got compilation issue for this patch:
../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc: In member function ‘rtx_def* riscv_vector::th_vlseg<IS_SIGNED>::exp and(riscv_vector::function_expander&) const’: ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:68:10: error: ‘IS_FAULT_ONLY_FIRST’ was not declared in this scope 68 | if (!IS_FAULT_ONLY_FIRST) | ^~~~~~~~~~~~~~~~~~~ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc: At global scope: ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:298:43: error: wrong number of template arguments (2, should be at l east 0) 298 | static CONSTEXPR const th_vlseg<true, true> th_vlsegff_obj; | ^ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:54:7: note: provided for ‘template<bool IS_SIGNED> class riscv_vecto r::th_vlseg’ 54 | class th_vlseg : public function_base { | ^~~~~~~~ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:298:45: error: uninitialized ‘const riscv_vector::th_vlsegff_obj’ [- fpermissive] 298 | static CONSTEXPR const th_vlseg<true, true> th_vlsegff_obj; | ^~~~~~~~~~~~~~ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:299:44: error: wrong number of template arguments (2, should be at l east 0) 299 | static CONSTEXPR const th_vlseg<false, true> th_vlseguff_obj; | ^ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:54:7: note: provided for ‘template<bool IS_SIGNED> class riscv_vecto r::th_vlseg’ 54 | class th_vlseg : public function_base { | ^~~~~~~~ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:299:46: error: uninitialized ‘const riscv_vector::th_vlseguff_obj’ [ -fpermissive] 299 | static CONSTEXPR const th_vlseg<false, true> th_vlseguff_obj; | ^~~~~~~~~~~~~~~ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:304:55: error: cannot convert ‘const int*’ to ‘const riscv_vector::f unction_base* const’ in initialization 304 | namespace bases { const function_base *const NAME = &NAME##_obj; } | ^ | | | const int* ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:316:1: note: in expansion of macro ‘BASE’ 316 | BASE (th_vlsegff) | ^~~~ ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:304:55: error: cannot convert ‘const int*’ to ‘const riscv_vector::f unction_base* const’ in initialization 304 | namespace bases { const function_base *const NAME = &NAME##_obj; } | ^ | | | const int* ../../../../riscv-gnu-toolchain-trunk/gcc/gcc/config/riscv/thead-vector-builtins-bases.cc:317:1: note: in expansion of macro ‘BASE’ 317 | BASE (th_vlseguff) | ^~~~