blob: 7ef6b6500593b89549e8e7bc90341ac2a948b095 [file] [log] [blame]
// 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 foo(global uint* a)
{
a[0] = get_local_size(0);
a[1] = get_local_size(1);
a[2] = get_local_size(2);
a[3] = get_local_size(3);
}
void kernel bar(global uint* a)
{
a[0] = get_local_size(0);
a[1] = get_local_size(1);
a[2] = get_local_size(2);
a[3] = get_local_size(3);
}
// CHECK: OpEntryPoint GLCompute [[_20:%[a-zA-Z0-9_]+]] "foo"
// CHECK: OpEntryPoint GLCompute [[_32:%[a-zA-Z0-9_]+]] "bar"
// CHECK: OpDecorate [[_gl_WorkGroupSize:%[a-zA-Z0-9_]+]] BuiltIn WorkgroupSize
// CHECK: OpDecorate [[_14:%[a-zA-Z0-9_]+]] SpecId 0
// CHECK: OpDecorate [[_15:%[a-zA-Z0-9_]+]] SpecId 1
// CHECK: OpDecorate [[_16:%[a-zA-Z0-9_]+]] SpecId 2
// CHECK-DAG: [[_uint:%[a-zA-Z0-9_]+]] = OpTypeInt 32 0
// CHECK-DAG: [[_v3uint:%[a-zA-Z0-9_]+]] = OpTypeVector [[_uint]] 3
// CHECK: [[_14]] = OpSpecConstant [[_uint]] 1
// CHECK: [[_15]] = OpSpecConstant [[_uint]] 1
// CHECK: [[_16]] = OpSpecConstant [[_uint]] 1
// CHECK: [[_gl_WorkGroupSize]] = OpSpecConstantComposite [[_v3uint]] [[_14]] [[_15]] [[_16]]
// CHECK-DAG: [[_uint_1:%[a-zA-Z0-9_]+]] = OpConstant [[_uint]] 1
// CHECK: [[_20]] = OpFunction
// CHECK: [[_23:%[a-zA-Z0-9_]+]] = OpBitwiseAnd [[_v3uint]] [[_gl_WorkGroupSize]] [[_gl_WorkGroupSize]]
// CHECK: [[_24:%[a-zA-Z0-9_]+]] = OpCompositeExtract [[_uint]] [[_23]] 0
// CHECK: OpStore {{.*}} [[_24]]
// CHECK: [[_25:%[a-zA-Z0-9_]+]] = OpBitwiseAnd [[_v3uint]] [[_gl_WorkGroupSize]] [[_gl_WorkGroupSize]]
// CHECK: [[_26:%[a-zA-Z0-9_]+]] = OpCompositeExtract [[_uint]] [[_25]] 1
// CHECK: OpStore {{.*}} [[_26]]
// CHECK: [[_28:%[a-zA-Z0-9_]+]] = OpBitwiseAnd [[_v3uint]] [[_gl_WorkGroupSize]] [[_gl_WorkGroupSize]]
// CHECK: [[_29:%[a-zA-Z0-9_]+]] = OpCompositeExtract [[_uint]] [[_28]] 2
// CHECK: OpStore {{.*}} [[_29]]
// CHECK: OpStore {{.*}} [[_uint_1]]
// CHECK: [[_32]] = OpFunction
// CHECK: [[_35:%[a-zA-Z0-9_]+]] = OpBitwiseAnd [[_v3uint]] [[_gl_WorkGroupSize]] [[_gl_WorkGroupSize]]
// CHECK: [[_36:%[a-zA-Z0-9_]+]] = OpCompositeExtract [[_uint]] [[_35]] 0
// CHECK: OpStore {{.*}} [[_36]]
// CHECK: [[_37:%[a-zA-Z0-9_]+]] = OpBitwiseAnd [[_v3uint]] [[_gl_WorkGroupSize]] [[_gl_WorkGroupSize]]
// CHECK: [[_38:%[a-zA-Z0-9_]+]] = OpCompositeExtract [[_uint]] [[_37]] 1
// CHECK: OpStore {{.*}} [[_38]]
// CHECK: [[_40:%[a-zA-Z0-9_]+]] = OpBitwiseAnd [[_v3uint]] [[_gl_WorkGroupSize]] [[_gl_WorkGroupSize]]
// CHECK: [[_41:%[a-zA-Z0-9_]+]] = OpCompositeExtract [[_uint]] [[_40]] 2
// CHECK: OpStore {{.*}} [[_41]]
// CHECK: OpStore {{.*}} [[_uint_1]]