This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix ICEs with power8 fixuns_trunc<mode>di2 patterns (PR target/79197)
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: David Edelsohn <dje dot gcc at gmail dot com>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 1 Feb 2017 23:56:34 -0600
- Subject: Re: [PATCH] Fix ICEs with power8 fixuns_trunc<mode>di2 patterns (PR target/79197)
- Authentication-results: sourceware.org; auth=none
- References: <20170130212715.GO13290@tucnak>
On Mon, Jan 30, 2017 at 10:27:15PM +0100, Jakub Jelinek wrote:
> Accoring to make mddump generated tmp-mddump.md, on powerpc the only pattern
> with unsigned_fix:DI where the inner operand is SF or DFmode is the
> *fixuns_trunc<mode>di2_fctiduz. There is an expander for that instruction,
> which uses different operand predicates and different condition, so the
> following testcases show 2 different cases, in one the condition for the
> expander is true and false for the actual insn, the other where
> register_operand is true (SFmode subreg), while gpc_reg_operand is false.
> (There are other expanders and patterns that handle vector modes, or
> SImode, or DImode with KF/TFmodes.)
>
> As there is just one insn that satisfies it, it makes no sense to have
> different conditions or different predicates (there would need to be other
> define_insn* patterns that would handle the rest), but I don't really even
> see the point in duplication of the condition and predicates, the
> define_insn itself can serve as expander.
>
> Bootstrapped/regtested on powerpc64{,le}-linux, ok for trunk?
After much confusion... Yes, okay for trunk. Thanks, and sorry for
all the fuss about such a simple patch.
Segher
> 2017-01-30 Jakub Jelinek <jakub@redhat.com>
>
> PR target/79197
> * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
> (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
> conditions on a single line.
>
> * gcc.target/powerpc/pr79197.c: New test.
> * gcc.c-torture/compile/pr79197.c: New test.