"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp" between
cfe-8.0.1.src.tar.xz and cfe-9.0.0.src.tar.xz

About: Clang is an LLVM front end for the C, C++, and Objective-C languages. Clang aims to provide a better user experience through expressive diagnostics, a high level of conformance to language standards, fast compilation, and low memory use.

target_teams_distribute_simd_reduction_codegen.cpp  (cfe-8.0.1.src.tar.xz):target_teams_distribute_simd_reduction_codegen.cpp  (cfe-9.0.0.src.tar.xz)
skipping to change at line 49 skipping to change at line 49
int main() { int main() {
static int sivar; static int sivar;
#ifdef LAMBDA #ifdef LAMBDA
// LAMBDA: [[RED_VAR:@.+]] = common global [8 x {{.+}}] zeroinitializer // LAMBDA: [[RED_VAR:@.+]] = common global [8 x {{.+}}] zeroinitializer
// LAMBDA-LABEL: @main // LAMBDA-LABEL: @main
// LAMBDA: call void [[OUTER_LAMBDA:@.+]]( // LAMBDA: call void [[OUTER_LAMBDA:@.+]](
[&]() { [&]() {
// LAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( // LAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]](
// LAMBDA: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 1, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* { {.+}}@{{[^,]+}}, i32 0, i32 0), i32 0, i32 0) // LAMBDA: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 1, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* { {.+}}@{{[^,]+}}, i32 0, i32 0), i32 0, i32 1)
// LAMBDA: call void @[[LOFFL1:.+]]( // LAMBDA: call void @[[LOFFL1:.+]](
// LAMBDA: ret // LAMBDA: ret
#pragma omp target teams distribute simd reduction(+: sivar) #pragma omp target teams distribute simd reduction(+: sivar)
for (int i = 0; i < 2; ++i) { for (int i = 0; i < 2; ++i) {
// LAMBDA: define{{.*}} internal{{.*}} void @[[LOFFL1]](i32*{{.+}} [[SIVAR_A RG:%.+]]) // LAMBDA: define{{.*}} internal{{.*}} void @[[LOFFL1]](i32*{{.+}} [[SIVAR_A RG:%.+]])
// LAMBDA: [[SIVAR_ADDR:%.+]] = alloca i{{.+}}*, // LAMBDA: [[SIVAR_ADDR:%.+]] = alloca i{{.+}}*,
// LAMBDA: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], // LAMBDA: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]],
// LAMBDA: [[SIVAR:%.+]] = load i32*, i32** [[SIVAR_ADDR]], // LAMBDA: [[SIVAR:%.+]] = load i32*, i32** [[SIVAR_ADDR]],
// LAMBDA: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[LOUT L1:.+]] to {{.+}}, {{.+}} [[SIVAR]]) // LAMBDA: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[LOUT L1:.+]] to {{.+}}, {{.+}} [[SIVAR]])
// LAMBDA: ret void // LAMBDA: ret void
skipping to change at line 127 skipping to change at line 127
for (int i = 0; i < 2; ++i) { for (int i = 0; i < 2; ++i) {
sivar += i; sivar += i;
} }
return tmain<int>(); return tmain<int>();
#endif #endif
} }
// CHECK: [[RED_VAR:@.+]] = common global [8 x {{.+}}] zeroinitializer // CHECK: [[RED_VAR:@.+]] = common global [8 x {{.+}}] zeroinitializer
// CHECK: define {{.*}}i{{[0-9]+}} @main() // CHECK: define {{.*}}i{{[0-9]+}} @main()
// CHECK: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 1, i8** %{{[^ ,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}} @{{[^,]+}}, i32 0, i32 0), i32 0, i32 0) // CHECK: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 1, i8** %{{[^ ,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}} @{{[^,]+}}, i32 0, i32 0), i32 0, i32 1)
// CHECK: call void @[[OFFL1:.+]](i32* {{.+}}) // CHECK: call void @[[OFFL1:.+]](i32* {{.+}})
// CHECK: [[RES:%.+]] = call{{.*}} i32 @[[TMAIN_INT:[^(]+]]() // CHECK: [[RES:%.+]] = call{{.*}} i32 @[[TMAIN_INT:[^(]+]]()
// CHECK: ret i32 [[RES]] // CHECK: ret i32 [[RES]]
// CHECK: define{{.*}} void @[[OFFL1]](i32*{{.+}} [[SIVAR_ARG:%.+]]) // CHECK: define{{.*}} void @[[OFFL1]](i32*{{.+}} [[SIVAR_ARG:%.+]])
// CHECK: [[SIVAR_ADDR:%.+]] = alloca i{{.+}}*, // CHECK: [[SIVAR_ADDR:%.+]] = alloca i{{.+}}*,
// CHECK: store{{.+}} [[SIVAR_ARG]], {{.+}}** [[SIVAR_ADDR]], // CHECK: store{{.+}} [[SIVAR_ARG]], {{.+}}** [[SIVAR_ADDR]],
// CHECK: [[SIVAR_LOAD:%.+]] = load i32*, i32** [[SIVAR_ADDR]], // CHECK: [[SIVAR_LOAD:%.+]] = load i32*, i32** [[SIVAR_ADDR]],
// CHECK: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[OUTL1:.+] ] to {{.+}}, {{.+}} [[SIVAR_LOAD]]) // CHECK: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[OUTL1:.+] ] to {{.+}}, {{.+}} [[SIVAR_LOAD]])
// CHECK: ret void // CHECK: ret void
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)