Restructure comparison ops so as to better support XLA dispatch (#29591)
Summary:
Per ailzhang's suggestion in https://github.com/pytorch/pytorch/pull/28162#discussion_r344361926, this PR changes the implementation of binary comparison and logical ops
to those of unary ops in UnaryOps.cpp. The reason is that the call should eventually go through
at::op_out (e.g., at::logical_xor_out).
The check for Boolean output tensor is also removed, because:
- This check should only apply to _out functions but not on other variants. However, other variants
must go through the _out variant eventually.
- It does not have a clear motivation and seems unnecessary.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/29591
Differential Revision: D18460113
Pulled By: ailzhang
fbshipit-source-id: 58d501e59335186b3b8cc7d80ee9eed74efeeac8