[DAGCombiner][AArch64] Make combineCarryDiamond avoid creating UADDO_CARRY...
[DAGCombiner][AArch64] Make combineCarryDiamond avoid creating UADDO_CARRY with carry in larger than setcc result type. (#89121) In the attach test case we were creating a UADDO_CARRY with i1 carry out and i41 carry in. i41 exceeds is larger than the setcc result type for AArch64 which is i32. i41 needs to be promoted to i64 since it is larger than i32. The type legalizer tried to use promoteTargetBoolean, but that can only promote from a type smaller than setcc result type. The easiest fix here is to force the carryin type to match the carryout type at the type of creation. This should ensure the node won't exceeed setcc result type as long as the output type doesn't. I think we should explore requiring the types to match for this node. Fixes #88966
parent
d8a26ca3
Please register or sign in to comment