https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99041
--- Comment #3 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #2) > Combiner tries to combine whatever it can and if it matches (and costs > suggest it is beneficial) it keeps it. > So, this looks like a target bug to me. > In particular, mma_assemble_input_operand predicate seems to allow any MEM > whatsoever as long as it has V16QImode: > (define_special_predicate "mma_assemble_input_operand" > (match_test "(mode == V16QImode > && (vsx_register_operand (op, mode) || MEM_P (op)))")) > I don't believe it can allow any, there must be some requirement on what the > address of the MEM can be, whether a REG + REG, REG + offset etc. and the > ICE is a proof it is not the case. Ahh, ok. I can make that more robust. Thanks for the pointer!