This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/79131] [7 Regression] ICE: in extract_constrain_insn, at recog.c:2213, big-endian ARM


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79131

Andreas Krebbel <krebbel at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |krebbel at gcc dot gnu.org

--- Comment #12 from Andreas Krebbel <krebbel at gcc dot gnu.org> ---
(In reply to Vladimir Makarov from comment #3)
> Author: vmakarov
> Date: Thu Jan 26 17:08:12 2017
> New Revision: 244942
> 
> URL: https://gcc.gnu.org/viewcvs?rev=244942&root=gcc&view=rev
> Log:
> 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
> 
> 	PR target/79131
> 	* lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
> 	endianess for subregs into account.
> 	* lra-constraints.c (lra_constraints): Do risky transformations
> 	always on the first iteration.
> 	* lra-lives.c (check_pseudos_live_through_calls): Add arg
> 	last_call_used_reg_set.
> 	(process_bb_lives): Define and use last_call_used_reg_set.
> 	* lra.c (lra): Always continue after lra_constraints on the first
> 	iteration.
> 
> 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
> 
> 	PR target/79131
> 	* gcc.target/arm/pr79131.c: New.

Starting with that patch we see worse code being generated for:

int __attribute__((noinline,noclone))
all_eq_double (double __attribute__((vector_size(16))) a,
               double __attribute__((vector_size(16))) b)
{
 return __builtin_s390_vec_all_eq (a, b);
}

gcc -O3 -march=z13
before:
        vfcedbs %v0,%v24,%v26
        lhi     %r2,1
        lochine %r2,0
        lgfr    %r2,%r2
        br      %r14
after:
        vfcedbs %v0,%v24,%v26
        lhi     %r2,1
        lr      %r1,%r2
        lochine %r1,0
        lgfr    %r2,%r1
        br      %r14

Note: ideally it should be more like:
        vfcedbs %v0,%v24,%v26
        lghi %r2,1
        locghine %r2,0
        br %r14
... but that's a different topic:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]