> 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 <[email protected]>
>
> * 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