This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, middle-end]: Fix g++.dg/other/vector-compare.C testsuite failure on alpha
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 21 Sep 2012 16:57:19 +0200
- Subject: Re: [PATCH, middle-end]: Fix g++.dg/other/vector-compare.C testsuite failure on alpha
- References: <CAFULd4YJpCSHj8ec3iSco=Z=8viuSvtMbvfxrbx4f1hs1O+KiA@mail.gmail.com>
> Prepare_cmp_insn in optabs.c expands BLKmode compares using either
> cmp{mem,str,strn}_optab, or through emit_library_call_value to integer
> result register, and follows with the expansion of the compare of the
> result with zero. However, the code blindly assumes that the target is
> able to compare resulting SImode value, which is not true in case of
> alpha. Due to missing SImode compare pattern, the above assert is
> triggered in emit_cmp_and_jump_1.
>
> The patch fixes this oversight by simply expanding the comparison of
> the result through generic comparison expansion code that conveniently
> follows BLKmode compare expansion.
>
> 2012-09-18 Uros Bizjak <ubizjak@gmail.com>
>
> * optabs.c (prepare_cmp_insn): Expand comparison of the result
> of memory block compare through generic comparison expansion code.
I don't think that the first hunk is necessary since result_mode is taken from
the comparison pattern itself; the second hunk alone seems to be sufficient.
> Patch was bootstrapped and regression tested on alphaev68-pc-linux-gnu
> and x86_64-pc-linux-gnu {,-m32}.
>
> OK for mainline and release branches?
Is that a regression on release branches? If no, that's not worth the risk.
--
Eric Botcazou