[PATCH] Fix ICEs with power8 fixuns_trunc<mode>di2 patterns (PR target/79197)
Segher Boessenkool
segher@kernel.crashing.org
Thu Feb 2 05:56:00 GMT 2017
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.
More information about the Gcc-patches
mailing list