This change:
- Updates the `redux.sync` NVVM Op input and output type constraints.
- Adds a verifier for the Op to prevent stack dumps and hitting
`llvm_unreachable` in certain invalid usage scenarios.
Instead, we gracefully error out with an informative
message now.