Hello!
> In consequence, the ix86_expand_multi_arg_builtin() function tries to
> check two args but based on the define_expand of xop_vmfrcz<mode>2,
> the content of insn_data[CODE_FOR_xop_vmfrczv4sf2].operand[2] may be
> incorrect (because it only needs one input).
;; scalar insns
-(define_expand "xop_vmfrcz<mode>2"
+(define_expand "xop_vmfrcz<mode>3"
[(set (match_operand:VF_128 0 "register_operand")
(vec_merge:VF_128
(unspec:VF_128
[(match_operand:VF_128 1 "nonimmediate_operand")]
UNSPEC_FRCZ)
- (match_dup 3)
+ (match_operand:VF_128 2 "register_operand")
(const_int 1)))]
"TARGET_XOP"
{
- operands[3] = CONST0_RTX (<MODE>mode);
+ operands[2] = CONST0_RTX (<MODE>mode);
})
No, just use (match_dup 2) in the RTX in addition to operands[2]
change. Do not rename patterns.
Uros.