A lot of test passes are currently anchored on FuncOp, but this
is generally just historical. A majority of these test passes can run on
any operation, or can operate on a specific interface
This allows for greatly reducing the API dependency on FuncOp, which
is slated to be moved out of the Builtin dialect.
Depends on D121190