Documentation

SSA.Projects.InstCombine.PaperExamples

theorem AlivePaperExamples.shift_mul {w : } :
(Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom [w], ) (Com.var (Expr.mk (InstCombine.MOp.const (MLIR.AST.Width.mvar 0, ) 1) HVector.nil HVector.nil) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.shl) (0, ::ₕ(0 + 1, ::ₕHVector.nil)) HVector.nil) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.mul) (0, ::ₕ(0 + 1 + 1 + 1, ::ₕHVector.nil)) HVector.nil) (Com.ret 0, )))) Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom [w], ) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.shl) (0 + 1, ::ₕ(0, ::ₕHVector.nil)) HVector.nil) (Com.ret 0, )))
theorem AlivePaperExamples.xor_sub {w : } :
(Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom [w], ) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.sub) (0 + 1, ::ₕ(0 + 1, ::ₕHVector.nil)) HVector.nil) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.xor) (0, ::ₕ(0 + 1, ::ₕHVector.nil)) HVector.nil) (Com.ret 0, ))) Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom [w], ) (Com.ret 0, ))
theorem AlivePaperExamples.bitvec_AddSub_1309 {w : } :
(Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom [w], ) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.and) (0 + 1, ::ₕ(0, ::ₕHVector.nil)) HVector.nil) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.or) (0 + 1 + 1, ::ₕ(0 + 1, ::ₕHVector.nil)) HVector.nil) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.add) (0 + 1, ::ₕ(0, ::ₕHVector.nil)) HVector.nil) (Com.ret 0, )))) Com.changeDialect (InstcombineTransformDialect.MOp.instantiateCom [w], ) (Com.var (Expr.mk (InstCombine.MOp.binary (MLIR.AST.Width.mvar 0, ) InstCombine.MOp.BinaryOp.add) (0 + 1, ::ₕ(0, ::ₕHVector.nil)) HVector.nil) (Com.ret 0, )))