https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992
--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> --- This works for x86-64: diff --git a/gcc/cse.cc b/gcc/cse.cc index 70d5caac4ca..786624cd890 100644 --- a/gcc/cse.cc +++ b/gcc/cse.cc @@ -2287,6 +2287,10 @@ hash_rtx (const_rtx x, machine_mode mode, record = true; else if (GET_MODE_CLASS (GET_MODE (x)) == MODE_CC) record = true; + else if (REG_ATTRS (x) + && REG_EXPR (x) + && TREE_CODE (REG_EXPR (x)) == PARM_DECL) + record = true; else if (targetm.small_register_classes_for_mode_p (GET_MODE (x))) record = false; else if (targetm.class_likely_spilled_p (REGNO_REG_CLASS (regno)))