|
| 1 | +// RUN: %clang_cc1 -verify -fompss-2 -disable-llvm-passes -ferror-limit 100 %s -S -emit-llvm -o - | FileCheck %s |
| 2 | +// expected-no-diagnostics |
| 3 | +void foo(int sizex, |
| 4 | + int sizey, |
| 5 | + int (*p1)[sizex][sizey], |
| 6 | + int (**p2)[sizex][sizey], |
| 7 | + int *p3[sizex][sizey], |
| 8 | + int p4[sizex][sizey]) { |
| 9 | + int a; |
| 10 | + #pragma oss task in(p1[3], p4[2], p3[5], p2[3]) |
| 11 | + #pragma oss task shared(p1, p4, p3, p2) |
| 12 | + #pragma oss task private(p1, p4, p3, p2) |
| 13 | + #pragma oss task firstprivate(p1, p4, p3, p2) |
| 14 | + { |
| 15 | + (*p1)[0][1] = 3; |
| 16 | + (*p2)[0][1][4] = 3; |
| 17 | + p4[2][3] = 4; |
| 18 | + p3[5][3] = 0; |
| 19 | + } |
| 20 | +} |
| 21 | + |
| 22 | +// CHECK: %26 = call token @llvm.directive.region.entry() [ "DIR.OSS"([5 x i8] c"TASK\00"), "QUAL.OSS.FIRSTPRIVATE"(i32** %p1.addr), "QUAL.OSS.VLA.DIMS"(i32** %p1.addr, i64 %1, i64 %3), "QUAL.OSS.FIRSTPRIVATE"(i32** %p4.addr), "QUAL.OSS.VLA.DIMS"(i32** %p4.addr, i64 %15), "QUAL.OSS.FIRSTPRIVATE"(i32*** %p3.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p3.addr, i64 %11), "QUAL.OSS.FIRSTPRIVATE"(i32*** %p2.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p2.addr, i64 %5, i64 %7), "QUAL.OSS.CAPTURED"(i64 %1, i64 %3, i64 %15, i64 %11, i64 %5, i64 %7), "QUAL.OSS.DEP.IN"(i32* %16, i64 %17, i64 0, i64 %18, i64 %1, i64 0, i64 %1, i64 1, i64 3, i64 4), "QUAL.OSS.DEP.IN"(i32* %19, i64 %20, i64 0, i64 %21, i64 1, i64 2, i64 3), "QUAL.OSS.DEP.IN"(i32** %22, i64 %23, i64 0, i64 %24, i64 1, i64 5, i64 6), "QUAL.OSS.DEP.IN"(i32** %25, i64 8, i64 24, i64 32) ], !dbg !13 |
| 23 | +// CHECK: %27 = call token @llvm.directive.region.entry() [ "DIR.OSS"([5 x i8] c"TASK\00"), "QUAL.OSS.SHARED"(i32** %p1.addr), "QUAL.OSS.VLA.DIMS"(i32** %p1.addr, i64 %1, i64 %3), "QUAL.OSS.SHARED"(i32** %p4.addr), "QUAL.OSS.VLA.DIMS"(i32** %p4.addr, i64 %15), "QUAL.OSS.SHARED"(i32*** %p3.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p3.addr, i64 %11), "QUAL.OSS.SHARED"(i32*** %p2.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p2.addr, i64 %5, i64 %7), "QUAL.OSS.CAPTURED"(i64 %1, i64 %3, i64 %15, i64 %11, i64 %5, i64 %7) ], !dbg !14 |
| 24 | +// CHECK: %28 = call token @llvm.directive.region.entry() [ "DIR.OSS"([5 x i8] c"TASK\00"), "QUAL.OSS.PRIVATE"(i32** %p1.addr), "QUAL.OSS.VLA.DIMS"(i32** %p1.addr, i64 %1, i64 %3), "QUAL.OSS.PRIVATE"(i32** %p4.addr), "QUAL.OSS.VLA.DIMS"(i32** %p4.addr, i64 %15), "QUAL.OSS.PRIVATE"(i32*** %p3.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p3.addr, i64 %11), "QUAL.OSS.PRIVATE"(i32*** %p2.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p2.addr, i64 %5, i64 %7), "QUAL.OSS.CAPTURED"(i64 %1, i64 %3, i64 %15, i64 %11, i64 %5, i64 %7) ], !dbg !15 |
| 25 | +// CHECK: %29 = call token @llvm.directive.region.entry() [ "DIR.OSS"([5 x i8] c"TASK\00"), "QUAL.OSS.FIRSTPRIVATE"(i32** %p1.addr), "QUAL.OSS.VLA.DIMS"(i32** %p1.addr, i64 %1, i64 %3), "QUAL.OSS.FIRSTPRIVATE"(i32** %p4.addr), "QUAL.OSS.VLA.DIMS"(i32** %p4.addr, i64 %15), "QUAL.OSS.FIRSTPRIVATE"(i32*** %p3.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p3.addr, i64 %11), "QUAL.OSS.FIRSTPRIVATE"(i32*** %p2.addr), "QUAL.OSS.VLA.DIMS"(i32*** %p2.addr, i64 %5, i64 %7), "QUAL.OSS.CAPTURED"(i64 %1, i64 %3, i64 %15, i64 %11, i64 %5, i64 %7) ], !dbg !16 |
| 26 | + |
0 commit comments