| // RUN: clspv %s -o %t.spv |
| // RUN: spirv-dis %t.spv -o %t.spvasm |
| // RUN: FileCheck %s < %t.spvasm |
| // RUN: spirv-val %t.spv --target-env vulkan1.0 |
| |
| #define X 4 //33 |
| #define Y 17 //33 |
| |
| __constant int data[X][Y] = { |
| {1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,}, |
| {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,}, |
| {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}, |
| {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,}, |
| }; |
| |
| kernel void foo(global int* in, global int* out, int x, int y) { |
| *out = *in + data[x][y]; |
| } |
| |
| // CHECK: [[int:%[a-zA-Z0-9_]+]] = OpTypeInt 32 0 |
| // CHECK-DAG: [[int0:%[a-zA-Z0-9_]+]] = OpConstant [[int]] 0 |
| // CHECK-DAG: [[int4:%[a-zA-Z0-9_]+]] = OpConstant [[int]] 4 |
| // CHECK-DAG: [[int17:%[a-zA-Z0-9_]+]] = OpConstant [[int]] 17 |
| // CHECK-DAG: [[int1:%[a-zA-Z0-9_]+]] = OpConstant [[int]] 1 |
| // CHECK-DAG: [[array17:%[a-zA-Z0-9_]+]] = OpTypeArray [[int]] [[int17]] |
| // CHECK-DAG: [[array4:%[a-zA-Z0-9_]+]] = OpTypeArray [[array17]] [[int4]] |
| // CHECK: [[c0:%[a-zA-Z0-9_]+]] = OpConstantComposite [[array17]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] |
| // CHECK: [[c1:%[a-zA-Z0-9_]+]] = OpConstantComposite [[array17]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int0]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] |
| // CHECK: [[c2:%[a-zA-Z0-9_]+]] = OpConstantNull [[array17]] |
| // CHECK: [[c3:%[a-zA-Z0-9_]+]] = OpConstantComposite [[array17]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] [[int1]] |
| // CHECK: [[c:%[a-zA-Z0-9_]+]] = OpConstantComposite [[array4]] |
| // CHECK: OpVariable {{.*}} Private [[c]] |