[spirv] Add a canonicalizer for `spirv::LogicalNotOp`.
authorDenis Khalikov <khalikov.denis@huawei.com>
Fri, 22 Nov 2019 19:49:22 +0000 (11:49 -0800)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Fri, 22 Nov 2019 20:25:52 +0000 (12:25 -0800)
commita5cda4763f48e62fb9b477bd67c0b4751b266299
tree251a282b4f470f0049b37c14c8d3fb9f7150f61b
parent6db8530c26c82131d320f2465e67d6b6c95d77e0
[spirv] Add a canonicalizer for `spirv::LogicalNotOp`.

Add a canonicalizer for `spirv::LogicalNotOp`.
Converts:
* spv.LogicalNot(spv.IEqual(...)) -> spv.INotEqual(...)
* spv.LogicalNot(spv.INotEqual(...)) -> spv.IEqual(...)
* spv.LogicalNot(spv.LogicalEqual(...)) -> spv.LogicalNotEqual(...)
* spv.LogicalNot(spv.LogicalNotEqual(...)) -> spv.LogicalEqual(...)

Also moved the test for spv.IMul to arithemtic tests.

Closes tensorflow/mlir#256

COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/mlir/pull/256 from denis0x0D:sandbox/canon_logical_not 76ab5787b2c777f948c8978db061d99e76453d44
PiperOrigin-RevId: 282012356
mlir/include/mlir/Dialect/SPIRV/SPIRVLogicalOps.td
mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
mlir/test/Dialect/SPIRV/arithmetic-ops.mlir
mlir/test/Dialect/SPIRV/canonicalize.mlir
mlir/test/Dialect/SPIRV/logical-ops.mlir