Intrinsic's "Commutative" property

Hi,

What does it mean when "Commutative" property is applied to an
intrinsic with more than two arguments? For example,
__builtin_ia32_dppd has this property.

Thanks.

Hi Simon,

What does it mean when "Commutative" property is applied to an
intrinsic with more than two arguments? For example,
__builtin_ia32_dppd has this property.

good question! I don't know what it means, however it seems to be used as
follows: CodeGenIntrinsic::CodeGenIntrinsic reads "Commutative" and sets the
isCommutative flag in an object of type struct CodeGenIntrinsic. At a glance
this only seems to be used in TreePatternNode::canPatternMatch. That rejects
any patterns that have an immediate anywhere except as the last operand.

Ciao, Duncan.