source: proto/pabloj/trunk/output/cpplang/idisa_definitions.hpp @ 3231

Last change on this file since 3231 was 3231, checked in by ksherdy, 6 years ago

Added a simple test to support the creation dump statement tests.

File size: 3.5 KB
Line 
1// GENERATED CODE. DO NOT MODIFY.
2//
3// This template includes the minimal set of runtime support libraries required
4// to support compilation of PabloJ generated C++ code (bitblock.hpp, carryQ.hpp,
5// pabloSupport.hpp, error_tracker.hpp)
6//
7// (c) 2012, 2013 Robert D. Cameron, Ken Herdy
8// All rights reserved.
9// Licensed to International Characters, Inc. under Academic Free License 3.0
10//
11//////////////////////////////////////////////////////////////////////////////////////////
12// @ global - Stream structure and stream function declarations.
13//
14//////////////////////////////////////////////////////////////////////////////////////////
15//
16#ifndef PABLO_DEFINITIONS_HPP
17#define PABLO_DEFINITIONS_HPP
18
19// runtime libraries
20#include <simd-lib/bitblock.hpp>
21#include <simd-lib/carryQ.hpp>
22#include <simd-lib/pabloSupport.hpp>
23
24// migrate error tracker, line/column tracker to compiler runtime
25#include <ErrorTracker.h>
26ErrorTracker error_tracker;
27
28#define assert_0_error(errkind, errstrm) error_tracker.NoteError(errkind, errstrm);
29BitBlock EOF_mask = simd<1>::constant<1>();
30
31// namespace pablo
32// {
33struct KernelName
34{
35        KernelName()
36        {
37               
38        }
39         
40        IDISA_INLINE void do_block()
41        {
42                BitBlock a;
43                assert_bitblock_align(a);
44               
45                print_register<BitBlock>("a",a);
46                BitBlock b;
47                assert_bitblock_align(b);
48                print_register<BitBlock>("b",b);
49                BitBlock c;
50                assert_bitblock_align(c);
51                print_register<BitBlock>("c",c);
52                BitBlock k;
53                assert_bitblock_align(k);
54                print_register<BitBlock>("k",k);
55                BitBlock r;
56                assert_bitblock_align(r);
57                print_register<BitBlock>("r",r);
58                r = bitblock::slli<10>(a);
59                assert_bitblock_align(r);
60                print_register<BitBlock>("r",r);
61                bitblock::store_unaligned(a, &b);
62                r = bitblock::load_aligned(&b);
63                assert_bitblock_align(r);
64                print_register<BitBlock>("r",r);
65                r = simd_not(a);
66                assert_bitblock_align(r);
67                print_register<BitBlock>("r",r);
68                r = simd_nor(a,b);
69                assert_bitblock_align(r);
70                print_register<BitBlock>("r",r);
71                r = simd<16>::ifh(a,b,c);
72                assert_bitblock_align(r);
73                print_register<BitBlock>("r",r);
74                r = simd<2>::constant<3>();
75                assert_bitblock_align(r);
76                print_register<BitBlock>("r",r);
77                r = simd<8>::slli<1>(a);
78                assert_bitblock_align(r);
79                print_register<BitBlock>("r",r);
80                r = simd<1>::add(a,b);
81                assert_bitblock_align(r);
82                print_register<BitBlock>("r",r);
83                r = simd<2>::sub(a,b);
84                assert_bitblock_align(r);
85                print_register<BitBlock>("r",r);
86                r = simd<4>::mult(a,b);
87                assert_bitblock_align(r);
88                print_register<BitBlock>("r",r);
89                r = simd<8>::eq(a,b);
90                assert_bitblock_align(r);
91                print_register<BitBlock>("r",r);
92                r = simd<16>::gt(a,b);
93                assert_bitblock_align(r);
94                print_register<BitBlock>("r",r);
95                r = simd<32>::ugt(a,b);
96                assert_bitblock_align(r);
97                print_register<BitBlock>("r",r);
98                r = simd<64>::lt(a,b);
99                assert_bitblock_align(r);
100                print_register<BitBlock>("r",r);
101                r = simd<128>::ult(a,b);
102                assert_bitblock_align(r);
103                print_register<BitBlock>("r",r);
104                r = simd<128>::max(a,b);
105                assert_bitblock_align(r);
106                print_register<BitBlock>("r",r);
107                r = simd<1>::umax(a,b);
108                assert_bitblock_align(r);
109                print_register<BitBlock>("r",r);
110                r = simd<2>::min(a,b);
111                assert_bitblock_align(r);
112                print_register<BitBlock>("r",r);
113                r = simd<4>::umin(a,b);
114                assert_bitblock_align(r);
115                print_register<BitBlock>("r",r);
116                r = simd<64>::sll(a,b);
117                assert_bitblock_align(r);
118                print_register<BitBlock>("r",r);
119                r = simd<64>::srl(a,b);
120                assert_bitblock_align(r);
121                print_register<BitBlock>("r",r);
122        }
123       
124        void do_final_block()
125        {
126               
127        }
128       
129        CarryDeclare(carry_set_0,0,0);
130};
131 
132
133// } // pablo namespace
134
135#endif // PABLO_DEFINITIONS_HPP
Note: See TracBrowser for help on using the repository browser.