/
pccc
/
pccc-mlir
Обзор
Документация
Войти
/
pccc
/
pccc-mlir
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
offload/test/mapping/firstprivate_aligned.cpp
37 строк
931 B
obitotsky
fork mlir
19 июл 2026, 07:05
Верифицирован
19 июл 2026, 07:05
6422b87
Код
Авторство
О чём код?
// RUN: %libomptarget-compilexx-generic -O3 && %libomptarget-run-generic #include <stdio.h> // CHECK: rx: 16, ry: 16; // CHECK: rx: 16, ry: 16; // CHECK: rx: 16, ry: 16; // CHECK: rx: 16, ry: 16; template <bool Aligned> void test() { printf("Test %saligned firstprivate\n", Aligned ? "" : "non-"); char z1[3 + Aligned], z2[3 + Aligned]; int x[4]; int y[4]; y[0] = y[1] = y[2] = y[3] = 4; x[0] = x[1] = x[2] = x[3] = 4; int rx = -1, ry = -1; #pragma omp target firstprivate(z1, y, z2) map(from : ry, rx) map(to : x) { ry = (y[0] + y[1] + y[2] + y[3]); rx = (x[0] + x[1] + x[2] + x[3]); } printf(" rx:%i, ry:%i\n", rx, ry); #pragma omp target firstprivate(z1, y, z2) map(from : ry, rx) map(to : x) { z1[2] += 5; ry = (y[0] + y[1] + y[2] + y[3]); rx = (x[0] + x[1] + x[2] + x[3]); z2[2] += 7; } printf(" rx:%i, ry:%i\n", rx, ry); } int main() { test<true>(); test<false>(); }