> 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  <ubiz...@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

Reply via email to