https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111822
--- Comment #19 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Uros Bizjak <u...@gcc.gnu.org>: https://gcc.gnu.org/g:b96c5436880d7926299314a33c953171082ab59e commit r14-9523-gb96c5436880d7926299314a33c953171082ab59e Author: Uros Bizjak <ubiz...@gmail.com> Date: Mon Mar 18 20:40:29 2024 +0100 i386: Unify {general,timode}_scalar_chain::convert_op [PR111822] Recent PR111822 fix implemented REG_EH_REGION note copying to a STV converted preload instruction in general_scalar_chain::convert_op. However, the same issue remains in timode_scalar_chain::convert_op. Instead of copying the newly introduced code to timode_scalar_chain::convert_op, the patch unifies both functions to a common function. PR target/111822 gcc/ChangeLog: * config/i386/i386-features.cc (smode_convert_cst): New function to handle SImode, DImode and TImode immediates, generalized from timode_convert_cst. (timode_convert_cst): Remove. (scalar_chain::convert_op): Unify from general_scalar_chain::convert_op and timode_scalar_chain::convert_op. (general_scalar_chain::convert_op): Remove. (timode_scalar_chain::convert_op): Remove. (timode_scalar_chain::convert_insn): Update the call to renamed timode_convert_cst. * config/i386/i386-features.h (class scalar_chain): Redeclare convert_op as protected class member. (class general_calar_chain): Remove convert_op. (class timode_scalar_chain): Ditto. gcc/testsuite/ChangeLog: * g++.target/i386/pr111822.C (dg-do): Compile only for ia32 targets. (dg-options): Add -march=x86-64.