JIT: add substraction
[scilab.git] / scilab / modules / jit / src / cpp / llvm-wrapper.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2013-2013 - S/E - Sylvestre Ledru
4  *  Copyright (C) 2013-2013 - S/E - Antoine ELIAS
5  *  Copyright (C) 2013-2013 - S/E - Calixte DENIZET
6  *
7  *  This file must be used under the terms of the CeCILL.
8  *  This source file is licensed as described in the file COPYING, which
9  *  you should have received as part of this distribution.  The terms
10  *  are also available at
11  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12  *
13  */
14
15 #include "types_comparison_lt_le_gt_ge.hxx"
16 #include "double.hxx"
17 #include "types_addition.hxx"
18 #include "types_multiplication.hxx"
19 #include "types_substraction.hxx"
20 #include "context.hxx"
21
22 /* This is a configuration file which will be transformed by llvm + clang
23 for the JIT
24 */
25 int foo()
26 {
27
28     types::Double* pdbl = types::Double::Empty();
29     types::Bool* pb = 0;
30     /* Addition */
31     int res = AddDoubleToDouble(pdbl, pdbl, &pdbl);
32     types::Double* pdbl1 = types::Double::Empty();
33     /* Multiplication */
34     res = MultiplyDoubleByDouble(pdbl1, pdbl1, &pdbl1);
35     res = SubstractDoubleToDouble(pdbl1, pdbl1, &pdbl1);
36
37     /* Substract */
38     res = DoubleLessDouble(pdbl, pdbl, 0);
39     symbol::Symbol * sym = 0;// = symbol::Symbol(L"a"); => This declaration makes llc fails
40
41     symbol::Context::getInstance()->put(*sym, *pdbl);
42     symbol::Context::getInstance()->get(*sym);
43
44     pb->get(0);
45
46     return res;
47 }
48
49