This is the mail archive of the gcc-patches@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]

Re: [PATCH, middle-end]: Fix g++.dg/other/vector-compare.C testsuite failure on alpha


> 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


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