|
4 | 4 |
|
5 | 5 | !CHECK: func @_QQmain() {
|
6 | 6 | !CHECK: %[[COUNT:.*]] = fir.address_of(@_QFEcount) : !fir.ref<i32>
|
7 |
| -!CHECK: %[[DOUBLE_COUNT:.*]] = fir.address_of(@_QFEdouble_count) : !fir.ref<i32> |
8 | 7 | !CHECK: %[[ETA:.*]] = fir.alloca f32 {bindc_name = "eta", uniq_name = "_QFEeta"}
|
9 | 8 | !CHECK: %[[CONST_1:.*]] = arith.constant 1 : i32
|
10 | 9 | !CHECK: omp.sections allocate(%[[CONST_1]] : i32 -> %0 : !fir.ref<i32>) {
|
11 | 10 | !CHECK: omp.section {
|
12 |
| -!CHECK: {{.*}} = arith.constant 5 : i32 |
13 |
| -!CHECK: fir.store {{.*}} to {{.*}} : !fir.ref<i32> |
14 |
| -!CHECK: {{.*}} = fir.load %[[COUNT]] : !fir.ref<i32> |
15 |
| -!CHECK: {{.*}} = fir.load %[[DOUBLE_COUNT]] : !fir.ref<i32> |
16 |
| -!CHECK: {{.*}} = arith.muli {{.*}}, {{.*}} : i32 |
17 |
| -!CHECK: {{.*}} = fir.convert {{.*}} : (i32) -> f32 |
18 |
| -!CHECK: fir.store {{.*}} to %[[ETA]] : !fir.ref<f32> |
| 11 | +!CHECK: %[[PRIVATE_ETA:.*]] = fir.alloca f32 {bindc_name = "eta", pinned, uniq_name = "_QFEeta"} |
| 12 | +!CHECK: %[[PRIVATE_DOUBLE_COUNT:.*]] = fir.alloca i32 {bindc_name = "double_count", pinned, uniq_name = "_QFEdouble_count"} |
| 13 | +!CHECK: %[[const:.*]] = arith.constant 5 : i32 |
| 14 | +!CHECK: fir.store %[[const]] to %[[COUNT]] : !fir.ref<i32> |
| 15 | +!CHECK: %[[temp_count:.*]] = fir.load %[[COUNT]] : !fir.ref<i32> |
| 16 | +!CHECK: %[[temp_double_count:.*]] = fir.load %[[PRIVATE_DOUBLE_COUNT]] : !fir.ref<i32> |
| 17 | +!CHECK: %[[result:.*]] = arith.muli %[[temp_count]], %[[temp_double_count]] : i32 |
| 18 | +!CHECK: {{.*}} = fir.convert %[[result]] : (i32) -> f32 |
| 19 | +!CHECK: fir.store {{.*}} to %[[PRIVATE_ETA]] : !fir.ref<f32> |
19 | 20 | !CHECK: omp.terminator
|
20 | 21 | !CHECK: }
|
21 | 22 | !CHECK: omp.section {
|
22 |
| -!CHECK: {{.*}} = fir.load %[[DOUBLE_COUNT]] : !fir.ref<i32> |
23 |
| -!CHECK: {{.*}} = arith.constant 1 : i32 |
24 |
| -!CHECK: {{.*}} = arith.addi {{.*}} : i32 |
25 |
| -!CHECK: fir.store {{.*}} to %[[DOUBLE_COUNT]] : !fir.ref<i32> |
| 23 | +!CHECK: %[[PRIVATE_ETA:.*]] = fir.alloca f32 {bindc_name = "eta", pinned, uniq_name = "_QFEeta"} |
| 24 | +!CHECK: %[[PRIVATE_DOUBLE_COUNT:.*]] = fir.alloca i32 {bindc_name = "double_count", pinned, uniq_name = "_QFEdouble_count"} |
| 25 | +!CHECK: %[[temp:.*]] = fir.load %[[PRIVATE_DOUBLE_COUNT]] : !fir.ref<i32> |
| 26 | +!CHECK: %[[const:.*]] = arith.constant 1 : i32 |
| 27 | +!CHECK: %[[result:.*]] = arith.addi %[[temp]], %[[const]] : i32 |
| 28 | +!CHECK: fir.store %[[result]] to %[[PRIVATE_DOUBLE_COUNT]] : !fir.ref<i32> |
26 | 29 | !CHECK: omp.terminator
|
27 | 30 | !CHECK: }
|
28 | 31 | !CHECK: omp.section {
|
29 |
| -!CHECK: {{.*}} = fir.load %[[ETA]] : !fir.ref<f32> |
30 |
| -!CHECK: {{.*}} = arith.constant 7.000000e+00 : f32 |
31 |
| -!CHECK: {{.*}} = arith.subf {{.*}} : f32 |
32 |
| -!CHECK: fir.store {{.*}} to %[[ETA]] : !fir.ref<f32> |
| 32 | +!CHECK: %[[PRIVATE_ETA:.*]] = fir.alloca f32 {bindc_name = "eta", pinned, uniq_name = "_QFEeta"} |
| 33 | +!CHECK: %[[PRIVATE_DOUBLE_COUNT:.*]] = fir.alloca i32 {bindc_name = "double_count", pinned, uniq_name = "_QFEdouble_count"} |
| 34 | +!CHECK: %[[temp:.*]] = fir.load %[[PRIVATE_ETA]] : !fir.ref<f32> |
| 35 | +!CHECK: %[[const:.*]] = arith.constant 7.000000e+00 : f32 |
| 36 | +!CHECK: %[[result:.*]] = arith.subf %[[temp]], %[[const]] : f32 |
| 37 | +!CHECK: fir.store %[[result]] to %[[PRIVATE_ETA]] : !fir.ref<f32> |
33 | 38 | !CHECK: {{.*}} = fir.load %[[COUNT]] : !fir.ref<i32>
|
34 |
| -!CHECK: {{.*}} = fir.convert {{.*}} : (i32) -> f32 |
35 |
| -!CHECK: {{.*}} = fir.load %[[ETA]] : !fir.ref<f32> |
36 |
| -!CHECK: {{.*}} = arith.mulf {{.*}}, {{.*}} : f32 |
37 |
| -!CHECK: {{.*}} = fir.convert {{.*}} : (f32) -> i32 |
38 |
| -!CHECK: fir.store {{.*}} to %[[COUNT]] : !fir.ref<i32> |
| 39 | +!CHECK: %[[temp_count:.*]] = fir.convert {{.*}} : (i32) -> f32 |
| 40 | +!CHECK: %[[temp_eta:.*]] = fir.load %[[PRIVATE_ETA]] : !fir.ref<f32> |
| 41 | +!CHECK: {{.*}} = arith.mulf %[[temp_count]], %[[temp_eta]] : f32 |
| 42 | +!CHECK: %[[result:.*]] = fir.convert {{.*}} : (f32) -> i32 |
| 43 | +!CHECK: fir.store %[[result]] to %[[COUNT]] : !fir.ref<i32> |
39 | 44 | !CHECK: {{.*}} = fir.load %[[COUNT]] : !fir.ref<i32>
|
40 |
| -!CHECK: {{.*}} = fir.convert {{.*}} : (i32) -> f32 |
41 |
| -!CHECK: {{.*}} = fir.load %[[ETA]] : !fir.ref<f32> |
42 |
| -!CHECK: {{.*}} = arith.subf {{.*}}, {{.*}} : f32 |
43 |
| -!CHECK: {{.*}} = fir.convert {{.*}} : (f32) -> i32 |
44 |
| -!CHECK: fir.store {{.*}} to %[[DOUBLE_COUNT]] : !fir.ref<i32> |
| 45 | +!CHECK: %[[temp_count:.*]] = fir.convert {{.*}} : (i32) -> f32 |
| 46 | +!CHECK: %[[temp_eta:.*]] = fir.load %[[PRIVATE_ETA]] : !fir.ref<f32> |
| 47 | +!CHECK: {{.*}} = arith.subf %[[temp_count]], %[[temp_eta]] : f32 |
| 48 | +!CHECK: %[[result:.*]] = fir.convert {{.*}} : (f32) -> i32 |
| 49 | +!CHECK: fir.store %[[result]] to %[[PRIVATE_DOUBLE_COUNT]] : !fir.ref<i32> |
45 | 50 | !CHECK: omp.terminator
|
46 | 51 | !CHECK: }
|
47 | 52 | !CHECK: omp.terminator
|
@@ -74,6 +79,9 @@ end program sample
|
74 | 79 | !CHECK: func @_QPfirstprivate(%[[ARG:.*]]: !fir.ref<f32> {fir.bindc_name = "alpha"}) {
|
75 | 80 | !CHECK: omp.sections {
|
76 | 81 | !CHECK: omp.section {
|
| 82 | +!CHECK: %[[PRIVATE_ALPHA:.*]] = fir.alloca f32 {bindc_name = "alpha", pinned, uniq_name = "_QFfirstprivateEalpha"} |
| 83 | +!CHECK: %[[temp:.*]] = fir.load %[[ARG]] : !fir.ref<f32> |
| 84 | +!CHECK: fir.store %[[temp]] to %[[PRIVATE_ALPHA]] : !fir.ref<f32> |
77 | 85 | !CHECK: omp.terminator
|
78 | 86 | !CHECK: }
|
79 | 87 | !CHECK: omp.terminator
|
|
0 commit comments