> 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