Add support for more binary ops
[kaleidoscope-hs-old.git] / Main.hs
diff --git a/Main.hs b/Main.hs
index 2d838d339da3d1a04c5354fc8e920085aa565d0e..8f4610af8b249920f0b03e67091804ad70c34faa 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -35,7 +35,11 @@ main = do
 
 build :: AST.Expr -> IRBuilderT ModuleBuilder Operand
 build (AST.Num a) = pure $ ConstantOperand (Float (Single a))
-build (AST.Add a b) = do
+build (AST.BinOp op a b) = do
   va <- build a
   vb <- build b
-  fadd va vb
+  let instr = case op of
+                AST.Add -> fadd
+                AST.Sub -> fsub
+                AST.Mul -> fmul
+  instr va vb