llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clangir Author: Andrzej Warzyński (banach-space) <details> <summary>Changes</summary> --- Patch is 151.52 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/218925.diff 11 Files Affected: - (modified) clang/test/CIR/CodeGenOpenACC/combined-copy.c (+18-18) - (modified) clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c (+32-32) - (modified) clang/test/CIR/CodeGenOpenACC/compute-copy.c (+18-18) - (modified) clang/test/CIR/CodeGenOpenACC/compute-copyin-copyout-create.c (+32-32) - (modified) clang/test/CIR/CodeGenOpenACC/data-copy-copyin-copyout-create.c (+24-24) - (modified) clang/test/CIR/CodeGenOpenACC/declare-copy.cpp (+30-31) - (modified) clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp (+39-40) - (modified) clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp (+30-31) - (modified) clang/test/CIR/CodeGenOpenACC/declare-create.cpp (+39-39) - (modified) clang/test/CIR/CodeGenOpenACC/enter-data.c (+8-8) - (modified) clang/test/CIR/CodeGenOpenACC/exit-data.c (+10-10) ``````````diff diff --git a/clang/test/CIR/CodeGenOpenACC/combined-copy.c b/clang/test/CIR/CodeGenOpenACC/combined-copy.c index be07aa96fd1be..a3037349bbd09 100644 --- a/clang/test/CIR/CodeGenOpenACC/combined-copy.c +++ b/clang/test/CIR/CodeGenOpenACC/combined-copy.c @@ -75,29 +75,29 @@ void acc_compute(int parmVar) { #pragma acc parallel loop copy(alwaysin: localVar1) copy(alwaysout: localVar2) copy(always: localVar3) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <{modifiers = #acc<data_clause_modifier alwaysin>}> -> !cir.ptr<!s32i> loc - // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LOCAL2]] : !cir.ptr<!s16i>) dataClause(acc_copy) name("localVar2") <{modifiers = #acc<data_clause_modifier alwaysout>}> -> !cir.ptr<!s16i> loc - // CHECK-NEXT: %[[COPYIN3:.*]] = acc.copyin varPtr(%[[LOCAL3]] : !cir.ptr<!cir.float>) dataClause(acc_copy) name("localVar3") <{modifiers = #acc<data_clause_modifier always>}> -> !cir.ptr<!cir.float> loc + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <modifiers = alwaysin> -> !cir.ptr<!s32i> loc + // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LOCAL2]] : !cir.ptr<!s16i>) dataClause(acc_copy) name("localVar2") <modifiers = alwaysout> -> !cir.ptr<!s16i> loc + // CHECK-NEXT: %[[COPYIN3:.*]] = acc.copyin varPtr(%[[LOCAL3]] : !cir.ptr<!cir.float>) dataClause(acc_copy) name("localVar3") <modifiers = "always"> -> !cir.ptr<!cir.float> loc // CHECK-NEXT: acc.parallel combined(loop) dataOperands(%[[COPYIN1]], %[[COPYIN2]], %[[COPYIN3]] : !cir.ptr<!s32i>, !cir.ptr<!s16i>, !cir.ptr<!cir.float>) { // CHECK-NEXT: acc.loop combined(parallel) { // CHECK: acc.yield // CHECK-NEXT: } // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN3]] : !cir.ptr<!cir.float>) to varPtr(%[[LOCAL3]] : !cir.ptr<!cir.float>) dataClause(acc_copy) name("localVar3") <{modifiers = #acc<data_clause_modifier always>}> loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN2]] : !cir.ptr<!s16i>) to varPtr(%[[LOCAL2]] : !cir.ptr<!s16i>) dataClause(acc_copy) name("localVar2") <{modifiers = #acc<data_clause_modifier alwaysout>}> loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <{modifiers = #acc<data_clause_modifier alwaysin>}> loc + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN3]] : !cir.ptr<!cir.float>) to varPtr(%[[LOCAL3]] : !cir.ptr<!cir.float>) dataClause(acc_copy) name("localVar3") <modifiers = "always"> loc + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN2]] : !cir.ptr<!s16i>) to varPtr(%[[LOCAL2]] : !cir.ptr<!s16i>) dataClause(acc_copy) name("localVar2") <modifiers = alwaysout> loc + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <modifiers = alwaysin> loc #pragma acc serial loop copy(always, alwaysin, alwaysout: localVar1) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <{modifiers = #acc<data_clause_modifier always>}> -> !cir.ptr<!s32i> loc + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <modifiers = "always"> -> !cir.ptr<!s32i> loc // CHECK-NEXT: acc.serial combined(loop) dataOperands(%[[COPYIN1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(serial) { // CHECK: acc.yield // CHECK-NEXT: } // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <{modifiers = #acc<data_clause_modifier always>}> loc + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCAL1]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar1") <modifiers = "always"> loc short *localPointer; float localArray[5]; @@ -1107,52 +1107,52 @@ void modifier_list() { #pragma acc parallel loop copy(always:localVar) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier always>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = "always"> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.parallel combined(loop) dataOperands(%[[COPYIN1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(parallel) { // CHECK: acc.yield // CHECK-NEXT: } independent loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier always>}> + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = "always"> #pragma acc serial loop copy(alwaysin:localVar) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier alwaysin>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = alwaysin> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.serial combined(loop) dataOperands(%[[COPYIN1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(serial) { // CHECK: acc.yield // CHECK-NEXT: } seq loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier alwaysin>}> + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = alwaysin> #pragma acc kernels loop copy(alwaysout:localVar) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier alwaysout>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = alwaysout> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.kernels combined(loop) dataOperands(%[[COPYIN1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(kernels) { // CHECK: acc.yield // CHECK-NEXT: } auto_ loc // CHECK-NEXT: acc.terminator // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier alwaysout>}> + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = alwaysout> #pragma acc parallel loop copy(capture:localVar) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier capture>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = capture> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.parallel combined(loop) dataOperands(%[[COPYIN1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(parallel) { // CHECK: acc.yield // CHECK-NEXT: } independent loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier capture>}> + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = capture> #pragma acc serial loop copy(capture, always, alwaysin, alwaysout:localVar) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier always,capture>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = "always,capture"> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.serial combined(loop) dataOperands(%[[COPYIN1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(serial) { // CHECK: acc.yield // CHECK-NEXT: } seq loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <{modifiers = #acc<data_clause_modifier always,capture>}> + // CHECK-NEXT: acc.copyout accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) to varPtr(%[[LOCALVAR]] : !cir.ptr<!s32i>) dataClause(acc_copy) name("localVar") <modifiers = "always,capture"> } diff --git a/clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c b/clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c index d219414e1601a..2f75c9f0a6670 100644 --- a/clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c +++ b/clang/test/CIR/CodeGenOpenACC/combined-copyin-copyout-create.c @@ -65,96 +65,96 @@ void acc_combined(int parmVar) { #pragma acc serial loop copyin(capture: parmVar) copyin(always: localVar1) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <{modifiers = #acc<data_clause_modifier capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <{modifiers = #acc<data_clause_modifier always>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <modifiers = capture> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <modifiers = "always"> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.serial combined(loop) dataOperands(%[[COPYIN1]], %[[COPYIN2]] : !cir.ptr<!s32i>, !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(serial) { // CHECK: acc.yield // CHECK-NEXT: } seq loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN2]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("localVar1") <{modifiers = #acc<data_clause_modifier always>}> - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("parmVar") <{modifiers = #acc<data_clause_modifier capture>}> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN2]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("localVar1") <modifiers = "always"> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("parmVar") <modifiers = capture> #pragma acc kernels loop copyout(capture: parmVar) copyout(always: localVar1) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[CREATE1:.*]] = acc.create varPtr(%[[PARM]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("parmVar") <{modifiers = #acc<data_clause_modifier capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[CREATE2:.*]] = acc.create varPtr(%[[LV1]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("localVar1") <{modifiers = #acc<data_clause_modifier always>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[CREATE1:.*]] = acc.create varPtr(%[[PARM]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("parmVar") <modifiers = capture> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[CREATE2:.*]] = acc.create varPtr(%[[LV1]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("localVar1") <modifiers = "always"> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.kernels combined(loop) dataOperands(%[[CREATE1]], %[[CREATE2]] : !cir.ptr<!s32i>, !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(kernels) { // CHECK: acc.yield // CHECK-NEXT: } auto_ loc // CHECK-NEXT: acc.terminator // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[CREATE2]] : !cir.ptr<!s32i>) to varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <{modifiers = #acc<data_clause_modifier always>}> - // CHECK-NEXT: acc.copyout accPtr(%[[CREATE1]] : !cir.ptr<!s32i>) to varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <{modifiers = #acc<data_clause_modifier capture>}> + // CHECK-NEXT: acc.copyout accPtr(%[[CREATE2]] : !cir.ptr<!s32i>) to varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <modifiers = "always"> + // CHECK-NEXT: acc.copyout accPtr(%[[CREATE1]] : !cir.ptr<!s32i>) to varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <modifiers = capture> #pragma acc parallel loop create(capture: parmVar) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[CREATE1:.*]] = acc.create varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <{modifiers = #acc<data_clause_modifier capture>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[CREATE1:.*]] = acc.create varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <modifiers = capture> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.parallel combined(loop) dataOperands(%[[CREATE1]] : !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(parallel) { // CHECK: acc.yield // CHECK-NEXT: } independent loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.delete accPtr(%[[CREATE1]] : !cir.ptr<!s32i>) dataClause(acc_create) name("parmVar") <{modifiers = #acc<data_clause_modifier capture>}> + // CHECK-NEXT: acc.delete accPtr(%[[CREATE1]] : !cir.ptr<!s32i>) dataClause(acc_create) name("parmVar") <modifiers = capture> #pragma acc serial loop copyin(capture, always: parmVar, localVar1) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <{modifiers = #acc<data_clause_modifier always,capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <{modifiers = #acc<data_clause_modifier always,capture>}> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <modifiers = "always,capture"> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <modifiers = "always,capture"> -> !cir.ptr<!s32i> // CHECK-NEXT: acc.serial combined(loop) dataOperands(%[[COPYIN1]], %[[COPYIN2]] : !cir.ptr<!s32i>, !cir.ptr<!s32i>) { // CHECK-NEXT: acc.loop combined(serial) { // CHECK: acc.yield // CHECK-NEXT: } seq loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN2]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("localVar1") <{modifiers = #acc<data_clause_modifier always,capture>}> - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("parmVar") <{modifiers = #acc<data_clause_modifier always,capture>}> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN2]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("localVar1") <modifiers = "always,capture"> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("parmVar") <modifiers = "always,capture"> #pragma acc kernels loop copyin(readonly, always, alwaysin, capture: parmVar, localVar1, localVar2) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <{modifiers = #acc<data_clause_modifier always,readonly,capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <{modifiers = #acc<data_clause_modifier always,readonly,capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[COPYIN3:.*]] = acc.copyin varPtr(%[[LV2]] : !cir.ptr<!cir.float>) name("localVar2") <{modifiers = #acc<data_clause_modifier always,readonly,capture>}> -> !cir.ptr<!cir.float> + // CHECK-NEXT: %[[COPYIN1:.*]] = acc.copyin varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("parmVar") <modifiers = "always,readonly,capture"> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN2:.*]] = acc.copyin varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <modifiers = "always,readonly,capture"> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[COPYIN3:.*]] = acc.copyin varPtr(%[[LV2]] : !cir.ptr<!cir.float>) name("localVar2") <modifiers = "always,readonly,capture"> -> !cir.ptr<!cir.float> // CHECK-NEXT: acc.kernels combined(loop) dataOperands(%[[COPYIN1]], %[[COPYIN2]], %[[COPYIN3]] : !cir.ptr<!s32i>, !cir.ptr<!s32i>, !cir.ptr<!cir.float>) { // CHECK-NEXT: acc.loop combined(kernels) { // CHECK: acc.yield // CHECK-NEXT: } auto_ loc // CHECK-NEXT: acc.terminator // CHECK-NEXT: } loc - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN3]] : !cir.ptr<!cir.float>) dataClause(acc_copyin) name("localVar2") <{modifiers = #acc<data_clause_modifier always,readonly,capture>}> - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN2]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("localVar1") <{modifiers = #acc<data_clause_modifier always,readonly,capture>}> - // CHECK-NEXT: acc.delete accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("parmVar") <{modifiers = #acc<data_clause_modifier always,readonly,capture>}> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN3]] : !cir.ptr<!cir.float>) dataClause(acc_copyin) name("localVar2") <modifiers = "always,readonly,capture"> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN2]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("localVar1") <modifiers = "always,readonly,capture"> + // CHECK-NEXT: acc.delete accPtr(%[[COPYIN1]] : !cir.ptr<!s32i>) dataClause(acc_copyin) name("parmVar") <modifiers = "always,readonly,capture"> #pragma acc parallel loop copyout(zero, always, alwaysout, capture: parmVar, localVar1, localVar2) for(int i = 0; i < 5; ++i); - // CHECK-NEXT: %[[CREATE1:.*]] = acc.create varPtr(%[[PARM]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("parmVar") <{modifiers = #acc<data_clause_modifier always,zero,capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[CREATE2:.*]] = acc.create varPtr(%[[LV1]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("localVar1") <{modifiers = #acc<data_clause_modifier always,zero,capture>}> -> !cir.ptr<!s32i> - // CHECK-NEXT: %[[CREATE3:.*]] = acc.create varPtr(%[[LV2]] : !cir.ptr<!cir.float>) dataClause(acc_copyout) name("localVar2") <{modifiers = #acc<data_clause_modifier always,zero,capture>}> -> !cir.ptr<!cir.float> + // CHECK-NEXT: %[[CREATE1:.*]] = acc.create varPtr(%[[PARM]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("parmVar") <modifiers = "always,zero,capture"> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[CREATE2:.*]] = acc.create varPtr(%[[LV1]] : !cir.ptr<!s32i>) dataClause(acc_copyout) name("localVar1") <modifiers = "always,zero,capture"> -> !cir.ptr<!s32i> + // CHECK-NEXT: %[[CREATE3:.*]] = acc.create varPtr(%[[LV2]] : !cir.ptr<!cir.float>) dataClause(acc_copyout) name("localVar2") <modifiers = "always,zero,capture"> -> !cir.ptr<!cir.float> // CHECK-NEXT: acc.parallel combined(loop) dataOperands(%[[CREATE1]], %[[CREATE2]], %[[CREATE3]] : !cir.ptr<!s32i>, !cir.ptr<!s32i>, !cir.ptr<!cir.float>) { // CHECK-NEXT: acc.loop combined(parallel) { // CHECK: acc.yield // CHECK-NEXT: } independent loc // CHECK-NEXT: acc.yield // CHECK-NEXT: } loc - // CHECK-NEXT: acc.copyout accPtr(%[[CREATE3]] : !cir.ptr<!cir.float>) to varPtr(%[[LV2]] : !cir.ptr<!cir.float>) name("localVar2") <{modifiers = #acc<data_clause_modifier always,zero,capture>}> - // CHECK-NEXT: acc.copyout accPtr(%[[CREATE2]] : !cir.ptr<!s32i>) to varPtr(%[[LV1]] : !cir.ptr<!s32i>) name("localVar1") <{modifiers = #acc<data_clause_modifier always,zero,capture>}> - // CHECK-NEXT: acc.copyout accPtr(%[[CREATE1]] : !cir.ptr<!s32i>) to varPtr(%[[PARM]] : !cir.ptr<!s32i>) name("par... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/218925 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
