https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64093
--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> Try this patch:
> Index: rs6000.md
> ===================================================================
> --- rs6000.md (revision 218072)
> +++ rs6000.md (working copy)
> @@ -2644,7 +2644,8 @@ (define_expand "and<mode>3"
> }
>
> if (logical_const_operand (operands[2], <MODE>mode)
> - && !any_mask_operand (operands[2], <MODE>mode))
> + && !any_mask_operand (operands[2], <MODE>mode)
> + && rs6000_gen_cell_microcode)
> {
> emit_insn (gen_and<mode>3_imm (operands[0], operands[1],
> operands[2]));
> DONE;
This fixes the problem. Thanks.