diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2016-04-22 03:56:56 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2016-04-22 03:56:56 +0000 |
commit | 5dff95c04de0d096563462530160fd5fc221fd8f (patch) | |
tree | ef34759729b05ec62a742bfc096fe72fafbd2df1 /clang/test/OpenMP/simd_codegen.cpp | |
parent | 59479e7208c4be3ea9317763dad05b208f0ea135 (diff) | |
download | bcm5719-llvm-5dff95c04de0d096563462530160fd5fc221fd8f.tar.gz bcm5719-llvm-5dff95c04de0d096563462530160fd5fc221fd8f.zip |
[OPENMP] Fix for LCV in simd directives in explicit clauses.
If loop control variable for simd-based directives is explicitly marked
as linear/lastprivate in clauses, codegen for such construct would
crash. Patch fixes this problem.
llvm-svn: 267101
Diffstat (limited to 'clang/test/OpenMP/simd_codegen.cpp')
-rw-r--r-- | clang/test/OpenMP/simd_codegen.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/test/OpenMP/simd_codegen.cpp b/clang/test/OpenMP/simd_codegen.cpp index a43d9996008..852699d813e 100644 --- a/clang/test/OpenMP/simd_codegen.cpp +++ b/clang/test/OpenMP/simd_codegen.cpp @@ -209,6 +209,7 @@ void simple(float *a, float *b, float *c, float *d) { // CHECK-NEXT: store i64 [[ADD7_2]], i64* [[OMP_IV7]]{{.*}}!llvm.mem.parallel_loop_access ![[SIMPLE_LOOP7_ID]] } // CHECK: [[SIMPLE_LOOP7_END]] +// CHECK-NEXT: store i64 11, i64* // CHECK-NEXT: [[A_PRIV_VAL:%.+]] = load i32, i32* [[A_PRIV]], // CHECK-NEXT: store i32 [[A_PRIV_VAL]], i32* [[A]], int R; @@ -418,9 +419,10 @@ void collapsed(float *a, float *b, float *c, float *d) { // CHECK: [[COLL1_END]] } // i,j,l are updated; k is not updated. -// CHECK: store i32 3, i32* [[I:%[^,]+]] -// CHECK-NEXT: store i32 5, i32* [[I:%[^,]+]] -// CHECK-NEXT: store i16 9, i16* [[I:%[^,]+]] +// CHECK: store i32 3, i32* +// CHECK-NEXT: store i32 5, i32* +// CHECK-NEXT: store i32 7, i32* +// CHECK-NEXT: store i16 9, i16* // CHECK: ret void } |