- (ior (and (not (match_test "TARGET_X32")) + (ior (and (not (match_test "TARGET_X32 + || ix86_indirect_branch_thunk_register")) (match_operand 0 "sibcall_memory_operand")) - (and (match_test "TARGET_X32 && Pmode == DImode") + (and (match_test "TARGET_X32 && Pmode == DImode + && !ix86_indirect_branch_thunk_register") (match_operand 0 "GOT_memory_operand"))))
Is this patch just trying to disable the predicate when ix86_indirect_branch_thunk_register is set? Because this is what this convoluted logic does. While there is some sense for "TARGET_X32 && Pmode == DImode", we try to use RTX codes as much as possible in constraints.md and predicates.md. Uros.