/
redgpu
/
clspv
Обзор
Документация
Войти
/
redgpu
/
clspv
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
test/for.cl
32 строки
1 KB
SJW
SPIRVProducerPass refactor - phase2.2 (#586)
21 май 2020, 16:58
Не верифицирован
21 май 2020, 16:58
01901d9
Код
Авторство
О чём код?
// RUN: clspv %s -o %t.spv // RUN: spirv-dis -o %t2.spvasm %t.spv // RUN: FileCheck %s < %t2.spvasm // RUN: spirv-val --target-env vulkan1.0 %t.spv void kernel __attribute__((reqd_work_group_size(1, 1, 1))) foo(global uint* a, uint b) { for (uint i = 0; i < b; i++) { a[i]++; } } // CHECK: [[int:%[a-zA-Z0-9_]+]] = OpTypeInt 32 0 // CHECK: [[zero:%[a-zA-Z0-9_]+]] = OpConstant [[int]] 0 // CHECK: [[ptr:%[a-zA-Z0-9_]+]] = OpTypePointer StorageBuffer [[int]] // CHECK: [[one:%[a-zA-Z0-9_]+]] = OpConstant [[int]] 1 // CHECK: [[entry:%[a-zA-Z0-9_]+]] = OpLabel // CHECK: OpBranchConditional {{.*}} [[loop:%[a-zA-Z0-9_]+]] [[ret:%[a-zA-Z0-9_]+]] // CHECK: [[loop]] = OpLabel // CHECK-NEXT: [[phi:%[a-zA-Z0-9_]+]] = OpPhi [[int]] [[inc:%[a-zA-Z0-9_]+]] [[loop]] [[zero]] [[entry]] // CHECK-NEXT: [[gep:%[a-zA-Z0-9_]+]] = OpAccessChain [[ptr]] {{.*}} [[zero]] [[phi]] // CHECK-NEXT: [[ld:%[a-zA-Z0-9_]+]] = OpLoad [[int]] [[gep]] // CHECK-NEXT: [[add:%[a-zA-Z0-9_]+]] = OpIAdd [[int]] [[ld]] [[one]] // CHECK-NEXT: OpStore [[gep]] [[add]] // CHECK-NEXT: [[inc]] = OpIAdd [[int]] [[phi]] [[one]] // CHECK: OpLoopMerge [[merge:%[a-zA-Z0-9_]+]] [[loop]] None // CHECK-NEXT: OpBranchConditional {{.*}} [[merge]] [[loop]] // CHECK: [[merge]] = OpLabel // CHECK-NEXT: OpBranch [[ret]] // CHECK: [[ret]] = OpLabel // CHECK-NEXT: OpReturn