I have a question about PR87763, these are aarch64 specific tests that are failing after r265398 (combine: Do not combine moves from hard registers).
These tests are all failing when the assembler scan looks for specific instructions and these instructions are no longer being generated. In some cases the new code is no worse than the old code (just different) but in most cases the new code is a performance regression from the old code. Note that these tests are generally *very* small functions where the body of the function consists of only 1 to 4 instructions so if we do not combine instructions involving hard registers there isn't much, if any, combining that can be done. In larger functions this probably would not be an issue and I think those cases are where the incentive for this patch came from. So my question is, what do we want to do about these failures? Find a GCC patch to generate the better code? If it isn't done by combine, how would we do it? Peephole optimizations? Modify the tests to pass with the current output? Which, in my opinion would make the tests of not much value. Remove the tests? Tests that search for specific assembly language output are rather brittle to begin with and if they are no longer serving a purpose after the combine patch, maybe we don't need them. The tests in question are: gcc.target/aarch64/combine_bfi_1.c gcc.target/aarch64/insv_1.c gcc.target/aarch64/lsl_asr_sbfiz.c gcc.target/aarch64/sve/tls_preserve_1.c gcc.target/aarch64/tst_5.c gcc.target/aarch64/tst_6.c gcc.dg/vect/vect-nop-move.c # Scanning combine dump file, not asm file