This replacement can be used to eliminate all uses of the
producer/consumer for case where producer/consumer has other uses
outside of the producer/consumer pair. This makes the
producer/consumer dead.
Add test and minor fixup to the test harness.
The comment above is for the fuseElementwiseOps method, maybe we can move the struct above the comment?