ROSE
0.11.96.11
rexompiler
src
midend
programTransformation
ompLowering
omp_simd.h
1
#pragma once
2
3
enum
SimdType {
4
Nothing,
5
Addr3,
6
ArmAddr3,
7
Intel_AVX512,
8
Arm_SVE2
9
};
10
11
enum
OpType {
12
None,
13
Load,
14
Broadcast,
15
BroadcastZero,
16
Gather,
17
ExplicitGather,
18
Scatter,
19
ScalarStore,
20
Store,
21
HAdd,
22
Add,
23
Sub,
24
Mul,
25
Div,
26
Extract
27
};
28
29
//
30
// A class to hold SIMD operations
31
// The goal is to eventually migrate the SIMD compiler to this
32
//
33
struct
OmpSimdCompiler
{
34
35
// Functions
36
bool
isStridedLoadStore(
SgExpression
*pntr_exp);
37
38
// Metadata variables
39
SgForStatement
*for_loop =
nullptr
;
40
};
41
42
//
43
// Final translation functions
44
//
45
46
extern
SimdType simd_arch;
47
48
void
omp_simd_write_intel(
SgUpirLoopParallelStatement
*target,
SgForStatement
*for_loop, Rose_STL_Container<SgNode *> *ir_block,
int
simd_length);
49
void
omp_simd_write_arm(
SgUpirLoopParallelStatement
*target,
SgForStatement
*for_loop, Rose_STL_Container<SgNode *> *ir_block);
50
OmpSimdCompiler
Definition:
omp_simd.h:33
SgForStatement
This class represents the concept of a for loop.
Definition:
Cxx_Grammar.h:125996
SgUpirLoopParallelStatement
Definition:
Cxx_Grammar.h:221781
SgExpression
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...
Definition:
Cxx_Grammar.h:229045
Generated on Mon Dec 19 2022 23:39:54 for ROSE by
1.8.17