Hi Roger, Started a test of your latest version.
It appears we miss 64-bit patterns similar to these: (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 5 "plus_xor_ior_operator" [(ashift:SI (match_operand:SI 1 "register_operand" "r") (match_operand:SI 3 "const_int_operand" "n")) (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (match_operand:SI 4 "const_int_operand" "n"))]))] "INTVAL (operands[3]) + INTVAL (operands[4]) == 32" "{shd|shrpw} %1,%2,%4,%0" [(set_attr "type" "shift") (set_attr "length" "4")]) (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 5 "plus_xor_ior_operator" [(lshiftrt:SI (match_operand:SI 2 "register_operand" "r") (match_operand:SI 4 "const_int_operand" "n")) (ashift:SI (match_operand:SI 1 "register_operand" "r") (match_operand:SI 3 "const_int_operand" "n"))]))] "INTVAL (operands[3]) + INTVAL (operands[4]) == 32" "{shd|shrpw} %1,%2,%4,%0" [(set_attr "type" "shift") (set_attr "length" "4")]) I'm wondering if it would be useful to define the 64-bit equivalents using the "shrpd" instruction. If that's the case, then I think it would be good to rename "shd_internal" to "shrpw_internal". Regards, Dave On 2020-08-22 4:52 a.m., Roger Sayle wrote: > Hi Dave, > > It's great to hear from you. It's been a long while. > > Sorry, doh! yes, there's a mistake in my patch (that I introduced when I > renumbered > the operands in the shd's define_expand to be the more logical 0, 1, 2, 3, > then 4). > Sorry for the inconvenience [due to my lack of familiarity with PA-RISC > assembly]. > Hopefully you should get much better mileage out of the attached revision. > > Thanks again (and my sincere apologies), > Roger > -- > > -----Original Message----- > From: John David Anglin <dave.ang...@bell.net> > Sent: 21 August 2020 20:00 > To: Roger Sayle <ro...@nextmovesoftware.com>; 'GCC Patches' > <gcc-patches@gcc.gnu.org> > Cc: 'Jeff Law' <l...@redhat.com> > Subject: Re: [PATCH] hppa: Improve expansion of ashldi3 when !TARGET_64BIT > > Hi Roger, > > On 2020-08-21 8:53 a.m., Roger Sayle wrote: >> I was wondering whether Dave or Jeff (or someone else with access to >> real hardware) might "spin" this patch for me? > This may be totally unrelated to this patch but I hit this error in stage2 > testing your change: > build/genattrtab ../../gcc/gcc/common.md ../../gcc/gcc/config/pa/pa.md > insn-conditions.md \ > -Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c > genattrtab: Internal error: abort in attr_alt_union, at genattrtab.c:2383 > > It's great that you are back helpting with the middle-end. > > Regards, > Dave > > -- > John David Anglin dave.ang...@bell.net > -- John David Anglin dave.ang...@bell.net