diff --git a/test_conformance/spirv_new/README.txt b/test_conformance/spirv_new/README.txt index 71beaade..0b4f2095 100644 --- a/test_conformance/spirv_new/README.txt +++ b/test_conformance/spirv_new/README.txt @@ -1,13 +1,13 @@ test_conformance/spirv_new README ================================== -The text versions of the spirv files are present in `conformance-tests/test_conformance/spriv_new/spirv_txt`. +The text versions of the spirv files are present in `conformance-tests/test_conformance/spriv_new/spirv_asm`. These text files have been used to generate the binaries in `spirv_bin` using the assembler from `spirv-tools`. -The absolute path to `spirv_bin` needs to be passed after `-ILPath` token for the test to find the SPIRV binaries. +The absolute path to `spirv_bin` needs to be passed after `--spirv-binaries-path` token for the test to find the SPIRV binaries. An example invocation looks like the following: ``` -./test_conformance/spirv_new/test_conformance_spirv_new -ILPath /home/user/workspace/conformance-tests/test_conformance/spirv_new/spirv_bin/ [other options] +./test_conformance/spirv_new/test_conformance_spirv_new --spirv-binaries-path /home/user/workspace/conformance-tests/test_conformance/spirv_new/spirv_bin/ [other options] ``` diff --git a/test_conformance/spirv_new/spirv_asm/atomic_dec_global.spvasm32 b/test_conformance/spirv_new/spirv_asm/atomic_dec_global.spvasm32 new file mode 100644 index 00000000..23362014 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/atomic_dec_global.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "atomic_dec_global" + OpName %__spirv_GlobalInvocationId "__spirv_GlobalInvocationId" + OpName %val "val" + OpName %counter "counter" + OpDecorate %__spirv_GlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_GlobalInvocationId Constant + OpDecorate %val FuncParamAttr NoCapture + OpDecorate %__spirv_GlobalInvocationId LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %uint_1 = OpConstant %uint 1 + %uint_512 = OpConstant %uint 512 +%__spirv_GlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %val = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %counter = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3uint %__spirv_GlobalInvocationId Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpAtomicIDecrement %uint %counter %uint_1 %uint_512 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %val %15 + OpStore %17 %16 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/atomic_dec_global.spvasm64 b/test_conformance/spirv_new/spirv_asm/atomic_dec_global.spvasm64 new file mode 100644 index 00000000..683a0a51 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/atomic_dec_global.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "atomic_dec_global" + OpName %__spirv_GlobalInvocationId "__spirv_GlobalInvocationId" + OpName %val "val" + OpName %counter "counter" + OpDecorate %__spirv_GlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_GlobalInvocationId Constant + OpDecorate %val FuncParamAttr NoCapture + OpDecorate %__spirv_GlobalInvocationId LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %uint_1 = OpConstant %uint 1 + %uint_512 = OpConstant %uint 512 + %ulong_32 = OpConstant %ulong 32 +%__spirv_GlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %val = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %counter = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpLoad %v3ulong %__spirv_GlobalInvocationId Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpAtomicIDecrement %uint %counter %uint_1 %uint_512 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %val %19 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/atomic_inc_global.spvasm32 b/test_conformance/spirv_new/spirv_asm/atomic_inc_global.spvasm32 new file mode 100644 index 00000000..22ee479c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/atomic_inc_global.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "atomic_inc_global" + OpName %__spirv_GlobalInvocationId "__spirv_GlobalInvocationId" + OpName %val "val" + OpName %counter "counter" + OpDecorate %__spirv_GlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_GlobalInvocationId Constant + OpDecorate %val FuncParamAttr NoCapture + OpDecorate %__spirv_GlobalInvocationId LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %uint_1 = OpConstant %uint 1 + %uint_512 = OpConstant %uint 512 +%__spirv_GlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %val = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %counter = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3uint %__spirv_GlobalInvocationId Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpAtomicIIncrement %uint %counter %uint_1 %uint_512 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %val %15 + OpStore %17 %16 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/atomic_inc_global.spvasm64 b/test_conformance/spirv_new/spirv_asm/atomic_inc_global.spvasm64 new file mode 100644 index 00000000..cc59bb9f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/atomic_inc_global.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "atomic_inc_global" + OpName %__spirv_GlobalInvocationId "__spirv_GlobalInvocationId" + OpName %val "val" + OpName %counter "counter" + OpDecorate %__spirv_GlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_GlobalInvocationId Constant + OpDecorate %val FuncParamAttr NoCapture + OpDecorate %__spirv_GlobalInvocationId LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %uint_1 = OpConstant %uint 1 + %uint_512 = OpConstant %uint 512 + %ulong_32 = OpConstant %ulong 32 +%__spirv_GlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %val = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %counter = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpLoad %v3ulong %__spirv_GlobalInvocationId Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpAtomicIIncrement %uint %counter %uint_1 %uint_512 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %val %19 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/branch_conditional.spvasm32 b/test_conformance/spirv_new/spirv_asm/branch_conditional.spvasm32 new file mode 100644 index 00000000..57419c10 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/branch_conditional.spvasm32 @@ -0,0 +1,57 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "branch_conditional" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpVariable %_ptr_Function_uint Function + %18 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %uint %18 0 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpSLessThan %bool %21 %23 + OpBranchConditional %24 %25 %26 + %25 = OpLabel + %27 = OpISub %uint %23 %21 + OpStore %17 %27 + OpBranch %28 + %26 = OpLabel + %29 = OpISub %uint %21 %23 + OpStore %17 %29 + OpBranch %28 + %28 = OpLabel + %30 = OpLoad %uint %17 + %31 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %31 %30 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/branch_conditional.spvasm64 b/test_conformance/spirv_new/spirv_asm/branch_conditional.spvasm64 new file mode 100644 index 00000000..44e50fcb --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/branch_conditional.spvasm64 @@ -0,0 +1,63 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 36 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "branch_conditional" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + OpStore %19 %uint_0 + %28 = OpSLessThan %bool %25 %27 + OpBranchConditional %28 %29 %30 + %29 = OpLabel + %31 = OpISub %uint %27 %25 + OpStore %19 %31 + OpBranch %32 + %30 = OpLabel + %33 = OpISub %uint %25 %27 + OpStore %19 %33 + OpBranch %32 + %32 = OpLabel + %34 = OpLoad %uint %19 + %35 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %35 %34 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/branch_conditional_weighted.spvasm32 b/test_conformance/spirv_new/spirv_asm/branch_conditional_weighted.spvasm32 new file mode 100644 index 00000000..ce37a4d0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/branch_conditional_weighted.spvasm32 @@ -0,0 +1,57 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "branch_conditional_weighted" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpVariable %_ptr_Function_uint Function + %18 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %uint %18 0 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpSLessThan %bool %21 %23 + OpBranchConditional %24 %25 %26 4 6 + %25 = OpLabel + %27 = OpISub %uint %23 %21 + OpStore %17 %27 + OpBranch %28 + %26 = OpLabel + %29 = OpISub %uint %21 %23 + OpStore %17 %29 + OpBranch %28 + %28 = OpLabel + %30 = OpLoad %uint %17 + %31 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %31 %30 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/branch_conditional_weighted.spvasm64 b/test_conformance/spirv_new/spirv_asm/branch_conditional_weighted.spvasm64 new file mode 100644 index 00000000..d30c281a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/branch_conditional_weighted.spvasm64 @@ -0,0 +1,63 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 36 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "branch_conditional_weighted" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + OpStore %19 %uint_0 + %28 = OpSLessThan %bool %25 %27 + OpBranchConditional %28 %29 %30 4 6 + %29 = OpLabel + %31 = OpISub %uint %27 %25 + OpStore %19 %31 + OpBranch %32 + %30 = OpLabel + %33 = OpISub %uint %25 %27 + OpStore %19 %33 + OpBranch %32 + %32 = OpLabel + %34 = OpLoad %uint %19 + %35 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %35 %34 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/branch_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/branch_simple.spvasm32 new file mode 100644 index 00000000..07b6cd24 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/branch_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "branch_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %10 %13 + %16 = OpLoad %uint %14 + OpBranch %17 + %17 = OpLabel + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/branch_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/branch_simple.spvasm64 new file mode 100644 index 00000000..1b24c5d4 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/branch_simple.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "branch_simple" + OpName %in "in" + OpName %out "out" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpBranch %20 + %20 = OpLabel + %21 = OpLoad %uint %18 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/composite_construct_int4.spvasm32 b/test_conformance/spirv_new/spirv_asm/composite_construct_int4.spvasm32 new file mode 100644 index 00000000..2b6d7ad0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/composite_construct_int4.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "composite_construct_int4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %uint_119 = OpConstant %uint 119 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpCompositeConstruct %v4uint %uint_123 %uint_122 %uint_121 %uint_119 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %17 + OpStore %19 %18 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/composite_construct_int4.spvasm64 b/test_conformance/spirv_new/spirv_asm/composite_construct_int4.spvasm64 new file mode 100644 index 00000000..09f6d9b1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/composite_construct_int4.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "composite_construct_int4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %uint_119 = OpConstant %uint 119 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpCompositeConstruct %v4uint %uint_123 %uint_122 %uint_121 %uint_119 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %21 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/composite_construct_struct.spvasm32 b/test_conformance/spirv_new/spirv_asm/composite_construct_struct.spvasm32 new file mode 100644 index 00000000..e277912d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/composite_construct_struct.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "composite_construct_struct" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar + %_struct_11 = OpTypeStruct %v2uint %_struct_10 +%_ptr_CrossWorkgroup__struct_11 = OpTypePointer CrossWorkgroup %_struct_11 + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_11 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 +%uint_2100480000 = OpConstant %uint 2100480000 +%uint_2100480000_0 = OpConstant %uint 2100480000 + %18 = OpConstantComposite %v2uint %uint_2100480000 %uint_2100480000_0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_11 + %19 = OpLabel + %20 = OpCompositeConstruct %_struct_10 %uint_2100483600 %uchar_128 + %21 = OpCompositeConstruct %_struct_11 %18 %20 + %22 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %23 = OpCompositeExtract %uint %22 0 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_11 %in %23 + OpStore %24 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/composite_construct_struct.spvasm64 b/test_conformance/spirv_new/spirv_asm/composite_construct_struct.spvasm64 new file mode 100644 index 00000000..ed5422dc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/composite_construct_struct.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 29 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "composite_construct_struct" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_11 = OpTypeStruct %uint %uchar + %_struct_12 = OpTypeStruct %v2uint %_struct_11 +%_ptr_CrossWorkgroup__struct_12 = OpTypePointer CrossWorkgroup %_struct_12 + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_12 + %ulong_32 = OpConstant %ulong 32 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 +%uint_2100480000 = OpConstant %uint 2100480000 +%uint_2100480000_0 = OpConstant %uint 2100480000 + %20 = OpConstantComposite %v2uint %uint_2100480000 %uint_2100480000_0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_12 + %21 = OpLabel + %22 = OpCompositeConstruct %_struct_11 %uint_2100483600 %uchar_128 + %23 = OpCompositeConstruct %_struct_12 %20 %22 + %24 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %25 = OpCompositeExtract %ulong %24 0 + %26 = OpShiftLeftLogical %ulong %25 %ulong_32 + %27 = OpShiftRightArithmetic %ulong %26 %ulong_32 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_12 %in %27 + OpStore %28 %23 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_char_simple.spvasm32 new file mode 100644 index 00000000..7931958d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_char_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %uchar_20 = OpConstant %uchar 20 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %14 + OpStore %15 %uchar_20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_char_simple.spvasm64 new file mode 100644 index 00000000..a356232c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_char_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %ulong_32 = OpConstant %ulong 32 + %uchar_20 = OpConstant %uchar 20 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + OpStore %18 %uchar_20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_double_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_double_simple.spvasm32 new file mode 100644 index 00000000..3d2651f5 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_double_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_double_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double +%double_3_1415926535897931 = OpConstant %double 3.1415926535897931 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %14 + OpStore %15 %double_3_1415926535897931 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_double_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_double_simple.spvasm64 new file mode 100644 index 00000000..807916da --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_double_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_double_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%double_3_1415926535897931 = OpConstant %double 3.1415926535897931 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + OpStore %18 %double_3_1415926535897931 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_false_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_false_simple.spvasm32 new file mode 100644 index 00000000..19c2b518 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_false_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_false_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %false = OpConstantFalse %bool + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %14 = OpLabel + %15 = OpSelect %uint %false %uint_1 %uint_0 + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_false_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_false_simple.spvasm64 new file mode 100644 index 00000000..1c1980e0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_false_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_false_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %false = OpConstantFalse %bool + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpSelect %uint %false %uint_1 %uint_0 + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %21 + OpStore %22 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_float_simple.spvasm32 new file mode 100644 index 00000000..3286c757 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_float_simple.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%float_3_14159274 = OpConstant %float 3.14159274 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %14 + OpStore %15 %float_3_14159274 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_float_simple.spvasm64 new file mode 100644 index 00000000..f91b2bf2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_float_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%float_3_14159274 = OpConstant %float 3.14159274 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %17 + OpStore %18 %float_3_14159274 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_half_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_half_simple.spvasm32 new file mode 100644 index 00000000..59e4e2cb --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_half_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_half_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%half_0x1_ap_1 = OpConstant %half 0x1.ap+1 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %13 = OpLabel + %14 = OpFConvert %float %half_0x1_ap_1 + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + OpStore %17 %14 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_half_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_half_simple.spvasm64 new file mode 100644 index 00000000..40047087 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_half_simple.spvasm64 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_half_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%half_0x1_ap_1 = OpConstant %half 0x1.ap+1 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %14 = OpLabel + %15 = OpFConvert %float %half_0x1_ap_1 + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %19 + OpStore %20 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_int3_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_int3_simple.spvasm32 new file mode 100644 index 00000000..b80809f3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_int3_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_int3_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_v3uint = OpTypePointer CrossWorkgroup %v3uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_v3uint + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %13 = OpConstantComposite %v3uint %uint_123 %uint_122 %uint_121 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v3uint + %14 = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v3uint %in %16 + OpStore %17 %13 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_int3_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_int3_simple.spvasm64 new file mode 100644 index 00000000..2c302162 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_int3_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_int3_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_CrossWorkgroup_v3uint = OpTypePointer CrossWorkgroup %v3uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v3uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %16 = OpConstantComposite %v3uint %uint_123 %uint_122 %uint_121 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v3uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v3uint %in %21 + OpStore %22 %16 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_int4_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_int4_simple.spvasm32 new file mode 100644 index 00000000..7e6c2bb8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_int4_simple.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_int4_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %uint_119 = OpConstant %uint 119 + %15 = OpConstantComposite %v4uint %uint_123 %uint_122 %uint_121 %uint_119 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %18 + OpStore %19 %15 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_int4_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_int4_simple.spvasm64 new file mode 100644 index 00000000..7c5b5fb5 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_int4_simple.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_int4_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %uint_119 = OpConstant %uint 119 + %17 = OpConstantComposite %v4uint %uint_123 %uint_122 %uint_121 %uint_119 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %18 = OpLabel + %19 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %20 = OpCompositeExtract %ulong %19 0 + %21 = OpShiftLeftLogical %ulong %20 %ulong_32 + %22 = OpShiftRightArithmetic %ulong %21 %ulong_32 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %22 + OpStore %23 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_int_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_int_simple.spvasm32 new file mode 100644 index 00000000..c5bd8bf9 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_int_simple.spvasm32 @@ -0,0 +1,32 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 15 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_int_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %uint_123 = OpConstant %uint 123 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + OpStore %14 %uint_123 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_int_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_int_simple.spvasm64 new file mode 100644 index 00000000..1ddb08ac --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_int_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_int_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %uint_123 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_long_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_long_simple.spvasm32 new file mode 100644 index 00000000..e0a8b6f1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_long_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_long_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%ulong_34359738368 = OpConstant %ulong 34359738368 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %14 + OpStore %15 %ulong_34359738368 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_long_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_long_simple.spvasm64 new file mode 100644 index 00000000..7091209c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_long_simple.spvasm64 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_long_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%ulong_34359738368 = OpConstant %ulong 34359738368 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %16 + OpStore %17 %ulong_34359738368 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_short_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_short_simple.spvasm32 new file mode 100644 index 00000000..3b53e16c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_short_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_short_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%ushort_32000 = OpConstant %ushort 32000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %14 + OpStore %15 %ushort_32000 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_short_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_short_simple.spvasm64 new file mode 100644 index 00000000..d95032b7 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_short_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_short_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%ushort_32000 = OpConstant %ushort 32000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %17 + OpStore %18 %ushort_32000 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_struct_int_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_struct_int_char_simple.spvasm32 new file mode 100644 index 00000000..cf617c65 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_struct_int_char_simple.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_struct_int_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %_struct_9 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_9 = OpTypePointer CrossWorkgroup %_struct_9 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_9 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 + %14 = OpConstantComposite %_struct_9 %uint_2100483600 %uchar_128 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_9 + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_9 %in %17 + OpStore %18 %14 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_struct_int_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_struct_int_char_simple.spvasm64 new file mode 100644 index 00000000..25546675 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_struct_int_char_simple.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_struct_int_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_10 = OpTypePointer CrossWorkgroup %_struct_10 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_10 + %ulong_32 = OpConstant %ulong 32 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 + %16 = OpConstantComposite %_struct_10 %uint_2100483600 %uchar_128 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_10 + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_10 %in %21 + OpStore %22 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_struct_int_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_struct_int_float_simple.spvasm32 new file mode 100644 index 00000000..becd9e64 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_struct_int_float_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_struct_int_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %_struct_9 = OpTypeStruct %uint %float +%_ptr_CrossWorkgroup__struct_9 = OpTypePointer CrossWorkgroup %_struct_9 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_9 + %uint_1024 = OpConstant %uint 1024 +%float_3_1415 = OpConstant %float 3.1415 + %14 = OpConstantComposite %_struct_9 %uint_1024 %float_3_1415 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_9 + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_9 %in %17 + OpStore %18 %14 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_struct_int_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_struct_int_float_simple.spvasm64 new file mode 100644 index 00000000..96d85db7 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_struct_int_float_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_struct_int_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %float = OpTypeFloat 32 + %_struct_10 = OpTypeStruct %uint %float +%_ptr_CrossWorkgroup__struct_10 = OpTypePointer CrossWorkgroup %_struct_10 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_10 + %ulong_32 = OpConstant %ulong 32 + %uint_1024 = OpConstant %uint 1024 +%float_3_1415 = OpConstant %float 3.1415 + %16 = OpConstantComposite %_struct_10 %uint_1024 %float_3_1415 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_10 + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_10 %in %21 + OpStore %22 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_struct_struct_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_struct_struct_simple.spvasm32 new file mode 100644 index 00000000..23ae86ee --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_struct_struct_simple.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_struct_struct_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar + %_struct_11 = OpTypeStruct %v2uint %_struct_10 +%_ptr_CrossWorkgroup__struct_11 = OpTypePointer CrossWorkgroup %_struct_11 + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_11 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 +%uint_2100480000 = OpConstant %uint 2100480000 +%uint_2100480000_0 = OpConstant %uint 2100480000 + %18 = OpConstantComposite %_struct_10 %uint_2100483600 %uchar_128 + %19 = OpConstantComposite %v2uint %uint_2100480000 %uint_2100480000_0 + %20 = OpConstantComposite %_struct_11 %19 %18 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_11 + %21 = OpLabel + %22 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %23 = OpCompositeExtract %uint %22 0 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_11 %in %23 + OpStore %24 %20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_struct_struct_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_struct_struct_simple.spvasm64 new file mode 100644 index 00000000..3c3cf2e6 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_struct_struct_simple.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 29 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_struct_struct_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_11 = OpTypeStruct %uint %uchar + %_struct_12 = OpTypeStruct %v2uint %_struct_11 +%_ptr_CrossWorkgroup__struct_12 = OpTypePointer CrossWorkgroup %_struct_12 + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_12 + %ulong_32 = OpConstant %ulong 32 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 +%uint_2100480000 = OpConstant %uint 2100480000 +%uint_2100480000_0 = OpConstant %uint 2100480000 + %20 = OpConstantComposite %_struct_11 %uint_2100483600 %uchar_128 + %21 = OpConstantComposite %v2uint %uint_2100480000 %uint_2100480000_0 + %22 = OpConstantComposite %_struct_12 %21 %20 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_12 + %23 = OpLabel + %24 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %25 = OpCompositeExtract %ulong %24 0 + %26 = OpShiftLeftLogical %ulong %25 %ulong_32 + %27 = OpShiftRightArithmetic %ulong %26 %ulong_32 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_12 %in %27 + OpStore %28 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_true_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_true_simple.spvasm32 new file mode 100644 index 00000000..8b3733db --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_true_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_true_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %true = OpConstantTrue %bool + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %14 = OpLabel + %15 = OpSelect %uint %true %uint_1 %uint_0 + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %15 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_true_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_true_simple.spvasm64 new file mode 100644 index 00000000..da72dc66 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_true_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_true_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %true = OpConstantTrue %bool + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpSelect %uint %true %uint_1 %uint_0 + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %21 + OpStore %22 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_uchar_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_uchar_simple.spvasm32 new file mode 100644 index 00000000..a62d571f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_uchar_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_uchar_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %uchar_19 = OpConstant %uchar 19 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %14 + OpStore %15 %uchar_19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_uchar_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_uchar_simple.spvasm64 new file mode 100644 index 00000000..bba25514 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_uchar_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_uchar_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %ulong_32 = OpConstant %ulong 32 + %uchar_19 = OpConstant %uchar 19 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + OpStore %18 %uchar_19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_uint_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_uint_simple.spvasm32 new file mode 100644 index 00000000..5c8de260 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_uint_simple.spvasm32 @@ -0,0 +1,32 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 15 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_uint_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %uint_54321 = OpConstant %uint 54321 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + OpStore %14 %uint_54321 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_uint_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_uint_simple.spvasm64 new file mode 100644 index 00000000..1271b0ff --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_uint_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_uint_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %uint_54321 = OpConstant %uint 54321 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %uint_54321 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_ulong_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_ulong_simple.spvasm32 new file mode 100644 index 00000000..b69d82ad --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_ulong_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_ulong_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%ulong_9223372036854775810 = OpConstant %ulong 9223372036854775810 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %14 + OpStore %15 %ulong_9223372036854775810 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_ulong_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_ulong_simple.spvasm64 new file mode 100644 index 00000000..a53f9027 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_ulong_simple.spvasm64 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_ulong_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%ulong_9223372036854775810 = OpConstant %ulong 9223372036854775810 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %16 + OpStore %17 %ulong_9223372036854775810 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_ushort_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/constant_ushort_simple.spvasm32 new file mode 100644 index 00000000..ed309bf1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_ushort_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "constant_ushort_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%ushort_65000 = OpConstant %ushort 65000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %14 + OpStore %15 %ushort_65000 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/constant_ushort_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/constant_ushort_simple.spvasm64 new file mode 100644 index 00000000..be521745 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/constant_ushort_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "constant_ushort_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%ushort_65000 = OpConstant %ushort 65000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %17 + OpStore %18 %ushort_65000 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_char_simple.spvasm32 new file mode 100644 index 00000000..5ad09c77 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_char_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %uchar_20 = OpConstant %uchar 20 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %14 + %16 = OpCopyObject %uchar %uchar_20 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_char_simple.spvasm64 new file mode 100644 index 00000000..6faa1447 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_char_simple.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %ulong_32 = OpConstant %ulong 32 + %uchar_20 = OpConstant %uchar 20 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + %19 = OpCopyObject %uchar %uchar_20 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_double_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_double_simple.spvasm32 new file mode 100644 index 00000000..3023c943 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_double_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_double_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double +%double_3_1415926535897931 = OpConstant %double 3.1415926535897931 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %14 + %16 = OpCopyObject %double %double_3_1415926535897931 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_double_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_double_simple.spvasm64 new file mode 100644 index 00000000..3fa7f966 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_double_simple.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_double_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%double_3_1415926535897931 = OpConstant %double 3.1415926535897931 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + %19 = OpCopyObject %double %double_3_1415926535897931 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_float_simple.spvasm32 new file mode 100644 index 00000000..d7ef29c5 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_float_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%float_3_14159274 = OpConstant %float 3.14159274 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %14 + %16 = OpCopyObject %float %float_3_14159274 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_float_simple.spvasm64 new file mode 100644 index 00000000..4594c1c0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_float_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%float_3_14159274 = OpConstant %float 3.14159274 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %17 + %19 = OpCopyObject %float %float_3_14159274 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_half_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_half_simple.spvasm32 new file mode 100644 index 00000000..b0af90a8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_half_simple.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_half_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%half_0x1_ap_1 = OpConstant %half 0x1.ap+1 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %13 = OpLabel + %14 = OpCopyObject %half %half_0x1_ap_1 + %15 = OpFConvert %float %14 + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %17 + OpStore %18 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_half_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_half_simple.spvasm64 new file mode 100644 index 00000000..b9eeca96 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_half_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_half_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%half_0x1_ap_1 = OpConstant %half 0x1.ap+1 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %14 = OpLabel + %15 = OpCopyObject %half %half_0x1_ap_1 + %16 = OpFConvert %float %15 + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %20 + OpStore %21 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_int3_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_int3_simple.spvasm32 new file mode 100644 index 00000000..2f23b9d1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_int3_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_int3_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_v3uint = OpTypePointer CrossWorkgroup %v3uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_v3uint + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %13 = OpConstantComposite %v3uint %uint_123 %uint_122 %uint_121 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v3uint + %14 = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v3uint %in %16 + %18 = OpCopyObject %v3uint %13 + OpStore %17 %18 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_int3_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_int3_simple.spvasm64 new file mode 100644 index 00000000..0ab8b1dc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_int3_simple.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_int3_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_CrossWorkgroup_v3uint = OpTypePointer CrossWorkgroup %v3uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v3uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %16 = OpConstantComposite %v3uint %uint_123 %uint_122 %uint_121 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v3uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v3uint %in %21 + %23 = OpCopyObject %v3uint %16 + OpStore %22 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_int4_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_int4_simple.spvasm32 new file mode 100644 index 00000000..f7633a90 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_int4_simple.spvasm32 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_int4_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %uint_119 = OpConstant %uint 119 + %15 = OpConstantComposite %v4uint %uint_123 %uint_122 %uint_121 %uint_119 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %18 + %20 = OpCopyObject %v4uint %15 + OpStore %19 %20 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_int4_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_int4_simple.spvasm64 new file mode 100644 index 00000000..62411142 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_int4_simple.spvasm64 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_int4_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 + %uint_122 = OpConstant %uint 122 + %uint_121 = OpConstant %uint 121 + %uint_119 = OpConstant %uint 119 + %17 = OpConstantComposite %v4uint %uint_123 %uint_122 %uint_121 %uint_119 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %18 = OpLabel + %19 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %20 = OpCompositeExtract %ulong %19 0 + %21 = OpShiftLeftLogical %ulong %20 %ulong_32 + %22 = OpShiftRightArithmetic %ulong %21 %ulong_32 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %22 + %24 = OpCopyObject %v4uint %17 + OpStore %23 %24 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_int_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_int_simple.spvasm32 new file mode 100644 index 00000000..c6fa2181 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_int_simple.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_int_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %uint_123 = OpConstant %uint 123 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + %15 = OpCopyObject %uint %uint_123 + OpStore %14 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_int_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_int_simple.spvasm64 new file mode 100644 index 00000000..e068f8cd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_int_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_int_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %uint_123 = OpConstant %uint 123 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + %19 = OpCopyObject %uint %uint_123 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_long_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_long_simple.spvasm32 new file mode 100644 index 00000000..52411f28 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_long_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_long_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%ulong_34359738368 = OpConstant %ulong 34359738368 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %14 + %16 = OpCopyObject %ulong %ulong_34359738368 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_long_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_long_simple.spvasm64 new file mode 100644 index 00000000..4349ed33 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_long_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_long_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%ulong_34359738368 = OpConstant %ulong 34359738368 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %16 + %18 = OpCopyObject %ulong %ulong_34359738368 + OpStore %17 %18 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_short_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_short_simple.spvasm32 new file mode 100644 index 00000000..924e675c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_short_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_short_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%ushort_32000 = OpConstant %ushort 32000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %14 + %16 = OpCopyObject %ushort %ushort_32000 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_short_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_short_simple.spvasm64 new file mode 100644 index 00000000..0be76e2a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_short_simple.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_short_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%ushort_32000 = OpConstant %ushort 32000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %17 + %19 = OpCopyObject %ushort %ushort_32000 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_struct_int_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_struct_int_char_simple.spvasm32 new file mode 100644 index 00000000..1d6c526c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_struct_int_char_simple.spvasm32 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_struct_int_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %_struct_9 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_9 = OpTypePointer CrossWorkgroup %_struct_9 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_9 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 + %14 = OpConstantComposite %_struct_9 %uint_2100483600 %uchar_128 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_9 + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_9 %in %17 + %19 = OpCopyObject %_struct_9 %14 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_struct_int_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_struct_int_char_simple.spvasm64 new file mode 100644 index 00000000..e0387e46 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_struct_int_char_simple.spvasm64 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_struct_int_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_10 = OpTypePointer CrossWorkgroup %_struct_10 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_10 + %ulong_32 = OpConstant %ulong 32 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 + %16 = OpConstantComposite %_struct_10 %uint_2100483600 %uchar_128 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_10 + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_10 %in %21 + %23 = OpCopyObject %_struct_10 %16 + OpStore %22 %23 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_struct_int_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_struct_int_float_simple.spvasm32 new file mode 100644 index 00000000..6c0fb9da --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_struct_int_float_simple.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_struct_int_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %_struct_9 = OpTypeStruct %uint %float +%_ptr_CrossWorkgroup__struct_9 = OpTypePointer CrossWorkgroup %_struct_9 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_9 + %uint_1024 = OpConstant %uint 1024 +%float_3_1415 = OpConstant %float 3.1415 + %14 = OpConstantComposite %_struct_9 %uint_1024 %float_3_1415 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_9 + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_9 %in %17 + %19 = OpCopyObject %_struct_9 %14 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_struct_int_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_struct_int_float_simple.spvasm64 new file mode 100644 index 00000000..13b549a7 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_struct_int_float_simple.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_struct_int_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %float = OpTypeFloat 32 + %_struct_10 = OpTypeStruct %uint %float +%_ptr_CrossWorkgroup__struct_10 = OpTypePointer CrossWorkgroup %_struct_10 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_10 + %ulong_32 = OpConstant %ulong 32 + %uint_1024 = OpConstant %uint 1024 +%float_3_1415 = OpConstant %float 3.1415 + %16 = OpConstantComposite %_struct_10 %uint_1024 %float_3_1415 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_10 + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_10 %in %21 + %23 = OpCopyObject %_struct_10 %16 + OpStore %22 %23 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_struct_struct_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_struct_struct_simple.spvasm32 new file mode 100644 index 00000000..978e9211 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_struct_struct_simple.spvasm32 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Int8 + OpCapability Linkage + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_struct_struct_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar + %_struct_11 = OpTypeStruct %v2uint %_struct_10 +%_ptr_CrossWorkgroup__struct_11 = OpTypePointer CrossWorkgroup %_struct_11 + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_11 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 +%uint_2100480000 = OpConstant %uint 2100480000 +%uint_2100480000_0 = OpConstant %uint 2100480000 + %18 = OpConstantComposite %_struct_10 %uint_2100483600 %uchar_128 + %19 = OpConstantComposite %v2uint %uint_2100480000 %uint_2100480000_0 + %20 = OpConstantComposite %_struct_11 %19 %18 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_11 + %21 = OpLabel + %22 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %23 = OpCompositeExtract %uint %22 0 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_11 %in %23 + %25 = OpCopyObject %_struct_11 %20 + OpStore %24 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_struct_struct_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_struct_struct_simple.spvasm64 new file mode 100644 index 00000000..29f4b46d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_struct_struct_simple.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 30 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_struct_struct_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_11 = OpTypeStruct %uint %uchar + %_struct_12 = OpTypeStruct %v2uint %_struct_11 +%_ptr_CrossWorkgroup__struct_12 = OpTypePointer CrossWorkgroup %_struct_12 + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_12 + %ulong_32 = OpConstant %ulong 32 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_128 = OpConstant %uchar 128 +%uint_2100480000 = OpConstant %uint 2100480000 +%uint_2100480000_0 = OpConstant %uint 2100480000 + %20 = OpConstantComposite %_struct_11 %uint_2100483600 %uchar_128 + %21 = OpConstantComposite %v2uint %uint_2100480000 %uint_2100480000_0 + %22 = OpConstantComposite %_struct_12 %21 %20 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_12 + %23 = OpLabel + %24 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %25 = OpCompositeExtract %ulong %24 0 + %26 = OpShiftLeftLogical %ulong %25 %ulong_32 + %27 = OpShiftRightArithmetic %ulong %26 %ulong_32 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_12 %in %27 + %29 = OpCopyObject %_struct_12 %22 + OpStore %28 %29 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_uchar_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_uchar_simple.spvasm32 new file mode 100644 index 00000000..0450ba01 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_uchar_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_uchar_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %uchar_19 = OpConstant %uchar 19 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %14 + %16 = OpCopyObject %uchar %uchar_19 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_uchar_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_uchar_simple.spvasm64 new file mode 100644 index 00000000..87072e3f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_uchar_simple.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_uchar_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %ulong_32 = OpConstant %ulong 32 + %uchar_19 = OpConstant %uchar 19 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + %19 = OpCopyObject %uchar %uchar_19 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_uint_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_uint_simple.spvasm32 new file mode 100644 index 00000000..e36766f6 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_uint_simple.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_uint_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %uint_54321 = OpConstant %uint 54321 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + %15 = OpCopyObject %uint %uint_54321 + OpStore %14 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_uint_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_uint_simple.spvasm64 new file mode 100644 index 00000000..c0af753c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_uint_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_uint_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %uint_54321 = OpConstant %uint 54321 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + %19 = OpCopyObject %uint %uint_54321 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_ulong_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_ulong_simple.spvasm32 new file mode 100644 index 00000000..678a5f3a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_ulong_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_ulong_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%ulong_9223372036854775810 = OpConstant %ulong 9223372036854775810 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %14 + %16 = OpCopyObject %ulong %ulong_9223372036854775810 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_ulong_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_ulong_simple.spvasm64 new file mode 100644 index 00000000..caf6e552 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_ulong_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_ulong_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%ulong_9223372036854775810 = OpConstant %ulong 9223372036854775810 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %16 + %18 = OpCopyObject %ulong %ulong_9223372036854775810 + OpStore %17 %18 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_ushort_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/copy_ushort_simple.spvasm32 new file mode 100644 index 00000000..f6fbcdb0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_ushort_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "copy_ushort_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%ushort_65000 = OpConstant %ushort 65000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %14 + %16 = OpCopyObject %ushort %ushort_65000 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/copy_ushort_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/copy_ushort_simple.spvasm64 new file mode 100644 index 00000000..fd6b1c25 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/copy_ushort_simple.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "copy_ushort_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%ushort_65000 = OpConstant %ushort 65000 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %17 + %19 = OpCopyObject %ushort %ushort_65000 + OpStore %18 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_aliased.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_aliased.spvasm32 new file mode 100644 index 00000000..94bf154a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_aliased.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_aliased" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Aliased + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 + %17 = OpLoad %uint %16 Aligned 4 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpIAdd %uint %17 %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %15 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_aliased.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_aliased.spvasm64 new file mode 100644 index 00000000..e57a5ff1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_aliased.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_aliased" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Aliased + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpIAdd %uint %21 %23 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %25 %24 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_alignment.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_alignment.spvasm32 new file mode 100644 index 00000000..b2a2ae26 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_alignment.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_alignment" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Alignment 4 + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 + %17 = OpLoad %uint %16 Aligned 4 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpIAdd %uint %17 %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %15 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_alignment.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_alignment.spvasm64 new file mode 100644 index 00000000..f6bb8520 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_alignment.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_alignment" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Alignment 4 + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpIAdd %uint %21 %23 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %25 %24 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_coherent.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_coherent.spvasm32 new file mode 100644 index 00000000..eddcdb30 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_coherent.spvasm32 @@ -0,0 +1,80 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 40 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability ImageBasic + OpCapability LiteralSampler + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "decorate_coherent" + OpName %sampler "sampler" + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %call1 "call1" + OpName %call2 "call2" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit6 "vecinit6" + OpName %TempSampledImage "TempSampledImage" + OpName %call7_old "call7.old" + OpName %arrayidx "arrayidx" + OpDecorate %src Coherent + OpDecorate %19 Constant + %19 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %dst FuncParamAttr NoCapture + OpDecorate %sampler LinkageAttributes "sampler" Export + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %sampler Alignment 4 + OpGroupDecorate %19 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %uint_16 = OpConstant %uint 16 +%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %28 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly + %29 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %28 + %v2uint = OpTypeVector %uint 2 + %31 = OpTypeSampler + %32 = OpTypeSampledImage %28 + %float = OpTypeFloat 32 + %34 = OpConstantSampler %31 None 0 Nearest + %float_0 = OpConstant %float 0 + %sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %29 + %dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %src = OpFunctionParameter %28 + %entry = OpLabel + %36 = OpUndef %v2uint + %37 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %uint %37 0 + %38 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %uint %38 1 + %39 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0 + %call2 = OpCompositeExtract %uint %39 0 + %mul = OpIMul %uint %call2 %call1 + %add = OpIAdd %uint %mul %call + %vecinit = OpCompositeInsert %v2uint %call1 %36 0 + %vecinit6 = OpCompositeInsert %v2uint %call %vecinit 1 +%TempSampledImage = OpSampledImage %32 %src %34 + %call7_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit6 Lod %float_0 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %add + OpStore %arrayidx %call7_old Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_coherent.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_coherent.spvasm64 new file mode 100644 index 00000000..d86a9846 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_coherent.spvasm64 @@ -0,0 +1,93 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 47 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability ImageBasic + OpCapability LiteralSampler + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "decorate_coherent" + OpName %sampler "sampler" + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %conv "conv" + OpName %call1 "call1" + OpName %conv2 "conv2" + OpName %conv3 "conv3" + OpName %call4 "call4" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit10 "vecinit10" + OpName %TempSampledImage "TempSampledImage" + OpName %call11_old "call11.old" + OpName %sext "sext" + OpName %idxprom "idxprom" + OpName %arrayidx "arrayidx" + OpDecorate %src Coherent + OpDecorate %24 Constant + %24 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %dst FuncParamAttr NoCapture + OpDecorate %sampler LinkageAttributes "sampler" Export + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %sampler Alignment 4 + OpGroupDecorate %24 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %ulong = OpTypeInt 64 0 + %uint_16 = OpConstant %uint 16 + %ulong_32 = OpConstant %ulong 32 +%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %35 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly + %36 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %35 + %v2uint = OpTypeVector %uint 2 + %38 = OpTypeSampler + %39 = OpTypeSampledImage %35 + %float = OpTypeFloat 32 + %41 = OpConstantSampler %38 None 0 Nearest + %float_0 = OpConstant %float 0 + %sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %36 + %dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %src = OpFunctionParameter %35 + %entry = OpLabel + %43 = OpUndef %v2uint + %44 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %ulong %44 0 + %conv = OpUConvert %uint %call + %45 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %ulong %45 1 + %conv2 = OpUConvert %uint %call1 + %conv3 = OpSConvert %ulong %conv2 + %46 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0 + %call4 = OpCompositeExtract %ulong %46 0 + %mul = OpIMul %ulong %conv3 %call4 + %add = OpIAdd %ulong %mul %call + %vecinit = OpCompositeInsert %v2uint %conv2 %43 0 + %vecinit10 = OpCompositeInsert %v2uint %conv %vecinit 1 +%TempSampledImage = OpSampledImage %39 %src %41 + %call11_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit10 Lod %float_0 + %sext = OpShiftLeftLogical %ulong %add %ulong_32 + %idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %idxprom + OpStore %arrayidx %call11_old Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_constant.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_constant.spvasm32 new file mode 100644 index 00000000..482526db --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_constant.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_constant" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Constant + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 + %17 = OpLoad %uint %16 Aligned 4 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpIAdd %uint %17 %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %15 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_constant.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_constant.spvasm64 new file mode 100644 index 00000000..e2c55473 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_constant.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_constant" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Constant + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpIAdd %uint %21 %23 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %25 %24 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_constant_fail.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_constant_fail.spvasm32 new file mode 100644 index 00000000..bf5c981f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_constant_fail.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_constant" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Constant + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 + %17 = OpLoad %uint %16 Aligned 4 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpIAdd %uint %17 %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %15 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_constant_fail.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_constant_fail.spvasm64 new file mode 100644 index 00000000..9d8bc9d9 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_constant_fail.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_constant" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Constant + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpIAdd %uint %21 %23 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %25 %24 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_cpacked.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_cpacked.spvasm32 new file mode 100644 index 00000000..41503425 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_cpacked.spvasm32 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_cpacked" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %_struct_4 CPacked + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %_struct_4 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_4 = OpTypePointer CrossWorkgroup %_struct_4 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_4 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_127 = OpConstant %uchar 127 + %14 = OpConstantComposite %_struct_4 %uint_2100483600 %uchar_127 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_4 + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_4 %in %17 + OpStore %18 %14 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_cpacked.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_cpacked.spvasm64 new file mode 100644 index 00000000..aa42b252 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_cpacked.spvasm64 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_cpacked" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %_struct_4 CPacked + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uchar = OpTypeInt 8 0 + %_struct_4 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_4 = OpTypePointer CrossWorkgroup %_struct_4 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_4 + %ulong_32 = OpConstant %ulong 32 +%uint_2100483600 = OpConstant %uint 2100483600 + %uchar_127 = OpConstant %uchar 127 + %16 = OpConstantComposite %_struct_4 %uint_2100483600 %uchar_127 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_4 + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_4 %in %21 + OpStore %22 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_nonreadable.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_nonreadable.spvasm32 new file mode 100644 index 00000000..92fdb890 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_nonreadable.spvasm32 @@ -0,0 +1,66 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability ImageBasic + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "decorate_nonreadable" + OpSource OpenCL_C 100000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %call1 "call1" + OpName %call2 "call2" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit3 "vecinit3" + OpName %arrayidx "arrayidx" + OpDecorate %dst NonReadable + OpDecorate %16 Constant + %16 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %src FuncParamAttr NoCapture + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpGroupDecorate %16 %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %21 = OpTypeImage %void 2D 0 0 0 0 Unknown WriteOnly + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %24 = OpTypeFunction %void %21 %_ptr_CrossWorkgroup_v4uint + %v2uint = OpTypeVector %uint 2 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %24 + %dst = OpFunctionParameter %21 + %src = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %entry = OpLabel + %26 = OpUndef %v2uint + %27 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %uint %27 0 + %28 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %uint %28 1 + %29 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0 + %call2 = OpCompositeExtract %uint %29 0 + %mul = OpIMul %uint %call2 %call1 + %add = OpIAdd %uint %mul %call + %vecinit = OpCompositeInsert %v2uint %call1 %26 0 + %vecinit3 = OpCompositeInsert %v2uint %call %vecinit 1 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %src %add + %30 = OpLoad %v4uint %arrayidx Aligned 16 + OpImageWrite %dst %vecinit3 %30 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_nonreadable.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_nonreadable.spvasm64 new file mode 100644 index 00000000..596cc49d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_nonreadable.spvasm64 @@ -0,0 +1,79 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 38 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability ImageBasic + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "decorate_nonreadable" + OpSource OpenCL_C 100000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %conv "conv" + OpName %call1 "call1" + OpName %conv2 "conv2" + OpName %conv3 "conv3" + OpName %call4 "call4" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit7 "vecinit7" + OpName %sext "sext" + OpName %idxprom "idxprom" + OpName %arrayidx "arrayidx" + OpDecorate %dst NonReadable + OpDecorate %21 Constant + %21 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %src FuncParamAttr NoCapture + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpGroupDecorate %21 %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %ulong = OpTypeInt 64 0 + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %28 = OpTypeImage %void 2D 0 0 0 0 Unknown WriteOnly + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %31 = OpTypeFunction %void %28 %_ptr_CrossWorkgroup_v4uint + %v2uint = OpTypeVector %uint 2 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %31 + %dst = OpFunctionParameter %28 + %src = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %entry = OpLabel + %33 = OpUndef %v2uint + %34 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %ulong %34 0 + %conv = OpUConvert %uint %call + %35 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %ulong %35 1 + %conv2 = OpUConvert %uint %call1 + %conv3 = OpSConvert %ulong %conv2 + %36 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0 + %call4 = OpCompositeExtract %ulong %36 0 + %mul = OpIMul %ulong %conv3 %call4 + %add = OpIAdd %ulong %mul %call + %vecinit = OpCompositeInsert %v2uint %conv2 %33 0 + %vecinit7 = OpCompositeInsert %v2uint %conv %vecinit 1 + %sext = OpShiftLeftLogical %ulong %add %ulong_32 + %idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %src %idxprom + %37 = OpLoad %v4uint %arrayidx Aligned 16 + OpImageWrite %dst %vecinit7 %37 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_nonwritable.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_nonwritable.spvasm32 new file mode 100644 index 00000000..e4b25e39 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_nonwritable.spvasm32 @@ -0,0 +1,80 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 40 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability ImageBasic + OpCapability LiteralSampler + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "decorate_nonwritable" + OpName %sampler "sampler" + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %call1 "call1" + OpName %call2 "call2" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit6 "vecinit6" + OpName %TempSampledImage "TempSampledImage" + OpName %call7_old "call7.old" + OpName %arrayidx "arrayidx" + OpDecorate %src NonWritable + OpDecorate %19 Constant + %19 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %dst FuncParamAttr NoCapture + OpDecorate %sampler LinkageAttributes "sampler" Export + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %sampler Alignment 4 + OpGroupDecorate %19 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %uint_16 = OpConstant %uint 16 +%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %28 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly + %29 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %28 + %v2uint = OpTypeVector %uint 2 + %31 = OpTypeSampler + %32 = OpTypeSampledImage %28 + %float = OpTypeFloat 32 + %34 = OpConstantSampler %31 None 0 Nearest + %float_0 = OpConstant %float 0 + %sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %29 + %dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %src = OpFunctionParameter %28 + %entry = OpLabel + %36 = OpUndef %v2uint + %37 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %uint %37 0 + %38 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %uint %38 1 + %39 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0 + %call2 = OpCompositeExtract %uint %39 0 + %mul = OpIMul %uint %call2 %call1 + %add = OpIAdd %uint %mul %call + %vecinit = OpCompositeInsert %v2uint %call1 %36 0 + %vecinit6 = OpCompositeInsert %v2uint %call %vecinit 1 +%TempSampledImage = OpSampledImage %32 %src %34 + %call7_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit6 Lod %float_0 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %add + OpStore %arrayidx %call7_old Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_nonwritable.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_nonwritable.spvasm64 new file mode 100644 index 00000000..0f529681 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_nonwritable.spvasm64 @@ -0,0 +1,93 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 47 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability ImageBasic + OpCapability LiteralSampler + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "decorate_nonwritable" + OpName %sampler "sampler" + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %conv "conv" + OpName %call1 "call1" + OpName %conv2 "conv2" + OpName %conv3 "conv3" + OpName %call4 "call4" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit10 "vecinit10" + OpName %TempSampledImage "TempSampledImage" + OpName %call11_old "call11.old" + OpName %sext "sext" + OpName %idxprom "idxprom" + OpName %arrayidx "arrayidx" + OpDecorate %src NonWritable + OpDecorate %24 Constant + %24 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %dst FuncParamAttr NoCapture + OpDecorate %sampler LinkageAttributes "sampler" Export + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %sampler Alignment 4 + OpGroupDecorate %24 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %ulong = OpTypeInt 64 0 + %uint_16 = OpConstant %uint 16 + %ulong_32 = OpConstant %ulong 32 +%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %35 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly + %36 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %35 + %v2uint = OpTypeVector %uint 2 + %38 = OpTypeSampler + %39 = OpTypeSampledImage %35 + %float = OpTypeFloat 32 + %41 = OpConstantSampler %38 None 0 Nearest + %float_0 = OpConstant %float 0 + %sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %36 + %dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %src = OpFunctionParameter %35 + %entry = OpLabel + %43 = OpUndef %v2uint + %44 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %ulong %44 0 + %conv = OpUConvert %uint %call + %45 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %ulong %45 1 + %conv2 = OpUConvert %uint %call1 + %conv3 = OpSConvert %ulong %conv2 + %46 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0 + %call4 = OpCompositeExtract %ulong %46 0 + %mul = OpIMul %ulong %conv3 %call4 + %add = OpIAdd %ulong %mul %call + %vecinit = OpCompositeInsert %v2uint %conv2 %43 0 + %vecinit10 = OpCompositeInsert %v2uint %conv %vecinit 1 +%TempSampledImage = OpSampledImage %39 %src %41 + %call11_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit10 Lod %float_0 + %sext = OpShiftLeftLogical %ulong %add %ulong_32 + %idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %idxprom + OpStore %arrayidx %call11_old Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_restrict.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_restrict.spvasm32 new file mode 100644 index 00000000..f05e9166 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_restrict.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_restrict" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Restrict + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 + %17 = OpLoad %uint %16 Aligned 4 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpIAdd %uint %17 %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %15 + OpStore %21 %20 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_restrict.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_restrict.spvasm64 new file mode 100644 index 00000000..b9181c9e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_restrict.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_restrict" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %6 Restrict + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpIAdd %uint %21 %23 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %25 %24 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_double_long.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_double_long.spvasm32 new file mode 100644 index 00000000..e57fe7b3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_double_long.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rte_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTE + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + %19 = OpLoad %double %18 + %6 = OpConvertFToS %ulong %19 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %17 + OpStore %20 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_double_long.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_double_long.spvasm64 new file mode 100644 index 00000000..7b56ca29 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_double_long.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rte_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTE + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %19 + %21 = OpLoad %double %20 + %6 = OpConvertFToS %ulong %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %19 + OpStore %22 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_float_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_float_int.spvasm32 new file mode 100644 index 00000000..9a93f237 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_float_int.spvasm32 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rte_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTE + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + %18 = OpLoad %float %17 Aligned 4 + %6 = OpConvertFToS %uint %18 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %16 + OpStore %19 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_float_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_float_int.spvasm64 new file mode 100644 index 00000000..45809d6a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rte_float_int.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rte_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTE + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %20 + %22 = OpLoad %float %21 Aligned 4 + %6 = OpConvertFToS %uint %22 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %20 + OpStore %23 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_double_long.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_double_long.spvasm32 new file mode 100644 index 00000000..30a398e2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_double_long.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtn_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTN + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + %19 = OpLoad %double %18 + %6 = OpConvertFToS %ulong %19 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %17 + OpStore %20 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_double_long.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_double_long.spvasm64 new file mode 100644 index 00000000..a164bd51 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_double_long.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtn_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTN + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %19 + %21 = OpLoad %double %20 + %6 = OpConvertFToS %ulong %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %19 + OpStore %22 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_float_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_float_int.spvasm32 new file mode 100644 index 00000000..1db15d3c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_float_int.spvasm32 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtn_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTN + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + %18 = OpLoad %float %17 Aligned 4 + %6 = OpConvertFToS %uint %18 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %16 + OpStore %19 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_float_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_float_int.spvasm64 new file mode 100644 index 00000000..8b8ee770 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtn_float_int.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtn_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTN + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %20 + %22 = OpLoad %float %21 Aligned 4 + %6 = OpConvertFToS %uint %22 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %20 + OpStore %23 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_double_long.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_double_long.spvasm32 new file mode 100644 index 00000000..e6d80ebd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_double_long.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtp_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTP + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + %19 = OpLoad %double %18 + %6 = OpConvertFToS %ulong %19 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %17 + OpStore %20 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_double_long.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_double_long.spvasm64 new file mode 100644 index 00000000..b7f5915f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_double_long.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtp_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTP + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %19 + %21 = OpLoad %double %20 + %6 = OpConvertFToS %ulong %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %19 + OpStore %22 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_float_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_float_int.spvasm32 new file mode 100644 index 00000000..09b4b98e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_float_int.spvasm32 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtp_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTP + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + %18 = OpLoad %float %17 Aligned 4 + %6 = OpConvertFToS %uint %18 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %16 + OpStore %19 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_float_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_float_int.spvasm64 new file mode 100644 index 00000000..5a74457d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtp_float_int.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtp_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTP + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %20 + %22 = OpLoad %float %21 Aligned 4 + %6 = OpConvertFToS %uint %22 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %20 + OpStore %23 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_double_long.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_double_long.spvasm32 new file mode 100644 index 00000000..8eb632d9 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_double_long.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtz_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTZ + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + %19 = OpLoad %double %18 + %6 = OpConvertFToS %ulong %19 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %17 + OpStore %20 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_double_long.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_double_long.spvasm64 new file mode 100644 index 00000000..7c5c3465 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_double_long.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtz_double_long" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTZ + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %19 + %21 = OpLoad %double %20 + %6 = OpConvertFToS %ulong %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %res %19 + OpStore %22 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_float_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_float_int.spvasm32 new file mode 100644 index 00000000..21b4d4f1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_float_int.spvasm32 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtz_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTZ + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + %18 = OpLoad %float %17 Aligned 4 + %6 = OpConvertFToS %uint %18 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %16 + OpStore %19 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_float_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_float_int.spvasm64 new file mode 100644 index 00000000..6f0b123f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_rounding_rtz_float_int.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_rounding_rtz_float_int" + OpName %res "res" + OpName %in "in" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %6 FPRoundingMode RTZ + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %20 + %22 = OpLoad %float %21 Aligned 4 + %6 = OpConvertFToS %uint %22 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %20 + OpStore %23 %6 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_char.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_char.spvasm32 new file mode 100644 index 00000000..4aa86c16 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_char.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_char" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %18 + %20 = OpLoad %float %19 Aligned 4 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %18 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpFMul %float %20 %22 + %7 = OpConvertFToS %uchar %23 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %res %18 + OpStore %24 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_char.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_char.spvasm64 new file mode 100644 index 00000000..e102b843 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_char.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_char" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %21 + %23 = OpLoad %float %22 Aligned 4 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %21 + %25 = OpLoad %float %24 Aligned 4 + %26 = OpFMul %float %23 %25 + %7 = OpConvertFToS %uchar %26 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %res %21 + OpStore %27 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_int.spvasm32 new file mode 100644 index 00000000..1e2e7bd3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_int.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_int" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 + %22 = OpFMul %double %19 %21 + %7 = OpConvertFToS %uint %22 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %17 + OpStore %23 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_int.spvasm64 new file mode 100644 index 00000000..7ea8af93 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_int.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_int" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %21 + %23 = OpLoad %double %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %21 + %25 = OpLoad %double %24 + %26 = OpFMul %double %23 %25 + %7 = OpConvertFToS %uint %26 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %21 + OpStore %27 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_short.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_short.spvasm32 new file mode 100644 index 00000000..c37a35b6 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_short.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_short" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %18 + %20 = OpLoad %float %19 Aligned 4 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %18 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpFMul %float %20 %22 + %7 = OpConvertFToS %ushort %23 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %res %18 + OpStore %24 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_short.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_short.spvasm64 new file mode 100644 index 00000000..02bb819f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_short.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_short" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %21 + %23 = OpLoad %float %22 Aligned 4 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %21 + %25 = OpLoad %float %24 Aligned 4 + %26 = OpFMul %float %23 %25 + %7 = OpConvertFToS %ushort %26 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %res %21 + OpStore %27 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uchar.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uchar.spvasm32 new file mode 100644 index 00000000..b0b52ed1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uchar.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_uchar" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %18 + %20 = OpLoad %float %19 Aligned 4 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %18 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpFMul %float %20 %22 + %7 = OpConvertFToU %uchar %23 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %res %18 + OpStore %24 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uchar.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uchar.spvasm64 new file mode 100644 index 00000000..19c14157 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uchar.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_uchar" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %21 + %23 = OpLoad %float %22 Aligned 4 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %21 + %25 = OpLoad %float %24 Aligned 4 + %26 = OpFMul %float %23 %25 + %7 = OpConvertFToU %uchar %26 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %res %21 + OpStore %27 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uint.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uint.spvasm32 new file mode 100644 index 00000000..1426f117 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uint.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_uint" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 + %22 = OpFMul %double %19 %21 + %7 = OpConvertFToU %uint %22 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %17 + OpStore %23 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uint.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uint.spvasm64 new file mode 100644 index 00000000..cd597d7f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_uint.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_uint" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %21 + %23 = OpLoad %double %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %21 + %25 = OpLoad %double %24 + %26 = OpFMul %double %23 %25 + %7 = OpConvertFToS %uint %26 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %21 + OpStore %27 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_ushort.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_ushort.spvasm32 new file mode 100644 index 00000000..56555aa5 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_ushort.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_ushort" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %18 + %20 = OpLoad %float %19 Aligned 4 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %18 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpFMul %float %20 %22 + %7 = OpConvertFToU %ushort %23 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %res %18 + OpStore %24 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_ushort.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_ushort.spvasm64 new file mode 100644 index 00000000..72bf0e09 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_saturated_conversion_ushort.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "decorate_saturated_conversion_ushort" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %7 SaturatedConversion + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %21 + %23 = OpLoad %float %22 Aligned 4 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %21 + %25 = OpLoad %float %24 Aligned 4 + %26 = OpFMul %float %23 %25 + %7 = OpConvertFToU %ushort %26 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %res %21 + OpStore %27 %7 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_volatile.spvasm32 b/test_conformance/spirv_new/spirv_asm/decorate_volatile.spvasm32 new file mode 100644 index 00000000..94b1716f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_volatile.spvasm32 @@ -0,0 +1,80 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 40 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability ImageBasic + OpCapability LiteralSampler + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "decorate_volatile" + OpName %sampler "sampler" + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %call1 "call1" + OpName %call2 "call2" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit6 "vecinit6" + OpName %TempSampledImage "TempSampledImage" + OpName %call7_old "call7.old" + OpName %arrayidx "arrayidx" + OpDecorate %src Volatile + OpDecorate %19 Constant + %19 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %dst FuncParamAttr NoCapture + OpDecorate %sampler LinkageAttributes "sampler" Export + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %sampler Alignment 4 + OpGroupDecorate %19 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %uint_16 = OpConstant %uint 16 +%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %28 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly + %29 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %28 + %v2uint = OpTypeVector %uint 2 + %31 = OpTypeSampler + %32 = OpTypeSampledImage %28 + %float = OpTypeFloat 32 + %34 = OpConstantSampler %31 None 0 Nearest + %float_0 = OpConstant %float 0 + %sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %29 + %dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %src = OpFunctionParameter %28 + %entry = OpLabel + %36 = OpUndef %v2uint + %37 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %uint %37 0 + %38 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %uint %38 1 + %39 = OpLoad %v3uint %__spirv_BuiltInGlobalSize Aligned 0 + %call2 = OpCompositeExtract %uint %39 0 + %mul = OpIMul %uint %call2 %call1 + %add = OpIAdd %uint %mul %call + %vecinit = OpCompositeInsert %v2uint %call1 %36 0 + %vecinit6 = OpCompositeInsert %v2uint %call %vecinit 1 +%TempSampledImage = OpSampledImage %32 %src %34 + %call7_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit6 Lod %float_0 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %add + OpStore %arrayidx %call7_old Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/decorate_volatile.spvasm64 b/test_conformance/spirv_new/spirv_asm/decorate_volatile.spvasm64 new file mode 100644 index 00000000..9a151da1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/decorate_volatile.spvasm64 @@ -0,0 +1,93 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 47 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability ImageBasic + OpCapability LiteralSampler + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "decorate_volatile" + OpName %sampler "sampler" + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %__spirv_BuiltInGlobalSize "__spirv_BuiltInGlobalSize" + OpName %dst "dst" + OpName %src "src" + OpName %entry "entry" + OpName %call "call" + OpName %conv "conv" + OpName %call1 "call1" + OpName %conv2 "conv2" + OpName %conv3 "conv3" + OpName %call4 "call4" + OpName %mul "mul" + OpName %add "add" + OpName %vecinit "vecinit" + OpName %vecinit10 "vecinit10" + OpName %TempSampledImage "TempSampledImage" + OpName %call11_old "call11.old" + OpName %sext "sext" + OpName %idxprom "idxprom" + OpName %arrayidx "arrayidx" + OpDecorate %src Volatile + OpDecorate %24 Constant + %24 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalSize BuiltIn GlobalSize + OpDecorate %dst FuncParamAttr NoCapture + OpDecorate %sampler LinkageAttributes "sampler" Export + OpDecorate %__spirv_BuiltInGlobalSize LinkageAttributes "__spirv_BuiltInGlobalSize" Import + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %sampler Alignment 4 + OpGroupDecorate %24 %sampler %__spirv_BuiltInGlobalInvocationId %__spirv_BuiltInGlobalSize + %uint = OpTypeInt 32 0 + %ulong = OpTypeInt 64 0 + %uint_16 = OpConstant %uint 16 + %ulong_32 = OpConstant %ulong 32 +%_ptr_UniformConstant_uint = OpTypePointer UniformConstant %uint + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %35 = OpTypeImage %void 2D 0 0 0 0 Unknown ReadOnly + %36 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %35 + %v2uint = OpTypeVector %uint 2 + %38 = OpTypeSampler + %39 = OpTypeSampledImage %35 + %float = OpTypeFloat 32 + %41 = OpConstantSampler %38 None 0 Nearest + %float_0 = OpConstant %float 0 + %sampler = OpVariable %_ptr_UniformConstant_uint UniformConstant %uint_16 +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant +%__spirv_BuiltInGlobalSize = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %36 + %dst = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %src = OpFunctionParameter %35 + %entry = OpLabel + %43 = OpUndef %v2uint + %44 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call = OpCompositeExtract %ulong %44 0 + %conv = OpUConvert %uint %call + %45 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId Aligned 0 + %call1 = OpCompositeExtract %ulong %45 1 + %conv2 = OpUConvert %uint %call1 + %conv3 = OpSConvert %ulong %conv2 + %46 = OpLoad %v3ulong %__spirv_BuiltInGlobalSize Aligned 0 + %call4 = OpCompositeExtract %ulong %46 0 + %mul = OpIMul %ulong %conv3 %call4 + %add = OpIAdd %ulong %mul %call + %vecinit = OpCompositeInsert %v2uint %conv2 %43 0 + %vecinit10 = OpCompositeInsert %v2uint %conv %vecinit 1 +%TempSampledImage = OpSampledImage %39 %src %41 + %call11_old = OpImageSampleExplicitLod %v4uint %TempSampledImage %vecinit10 Lod %float_0 + %sext = OpShiftLeftLogical %ulong %add %ulong_32 + %idxprom = OpShiftRightArithmetic %ulong %sext %ulong_32 + %arrayidx = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %dst %idxprom + OpStore %arrayidx %call11_old Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm32 similarity index 65% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm32 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm32 index 48f43e63..e1311765 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm32 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm32 @@ -1,47 +1,47 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 23 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %22 FuncParamAttr NoWrite - %22 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %20 NoSignedWrap - OpGroupDecorate %22 %lhs %rhs + OpDecorate %8 NoSignedWrap + OpGroupDecorate %7 %lhs %rhs %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 + %2 = OpFunction %void None %14 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %15 = OpLabel + %16 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 %19 = OpLoad %uint %18 Aligned 4 - %20 = OpIAdd %uint %17 %19 - %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %21 %20 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %8 = OpIAdd %uint %19 %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpStore %22 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm64 new file mode 100644 index 00000000..26b81ede --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm64 @@ -0,0 +1,53 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %8 NoSignedWrap + OpGroupDecorate %7 %lhs %rhs + %ulong = OpTypeInt 64 0 + %uint = OpTypeInt 32 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpUConvert %uint %18 + %20 = OpSConvert %ulong %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpSConvert %ulong %19 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %8 = OpIAdd %uint %22 %25 + %26 = OpSConvert %ulong %19 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %26 + OpStore %27 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm32 similarity index 65% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm32 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm32 index 15bdb61a..be552423 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm32 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm32 @@ -1,47 +1,47 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 23 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %22 FuncParamAttr NoWrite - %22 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %20 NoUnsignedWrap - OpGroupDecorate %22 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + OpGroupDecorate %7 %lhs %rhs %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 + %2 = OpFunction %void None %14 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %15 = OpLabel + %16 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 %19 = OpLoad %uint %18 Aligned 4 - %20 = OpIAdd %uint %17 %19 - %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %21 %20 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %8 = OpIAdd %uint %19 %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpStore %22 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm64 similarity index 58% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm64 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm64 index 528bd587..3cddeea8 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm64 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spvasm64 @@ -1,53 +1,53 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 28 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %27 FuncParamAttr NoWrite - %27 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %24 NoUnsignedWrap - OpGroupDecorate %27 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + OpGroupDecorate %7 %lhs %rhs %ulong = OpTypeInt 64 0 %uint = OpTypeInt 32 0 %v3ulong = OpTypeVector %ulong 3 %_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 + %2 = OpFunction %void None %15 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 - %23 = OpLoad %uint %22 Aligned 4 - %24 = OpIAdd %uint %20 %23 - %25 = OpSConvert %ulong %17 - %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %25 - OpStore %26 %24 Aligned 4 + %16 = OpLabel + %17 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpUConvert %uint %18 + %20 = OpSConvert %ulong %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpSConvert %ulong %19 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %8 = OpIAdd %uint %22 %25 + %26 = OpSConvert %ulong %19 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %26 + OpStore %27 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm32 similarity index 65% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm32 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm32 index f20ec4fe..0844d734 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm32 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm32 @@ -1,47 +1,47 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 23 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %22 FuncParamAttr NoWrite - %22 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %20 NoSignedWrap - OpGroupDecorate %22 %lhs %rhs + OpDecorate %8 NoSignedWrap + OpGroupDecorate %7 %lhs %rhs %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 + %2 = OpFunction %void None %14 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %15 = OpLabel + %16 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 %19 = OpLoad %uint %18 Aligned 4 - %20 = OpIMul %uint %17 %19 - %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %21 %20 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %8 = OpIMul %uint %19 %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpStore %22 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm64 new file mode 100644 index 00000000..1a7cd928 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm64 @@ -0,0 +1,53 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %8 NoSignedWrap + OpGroupDecorate %7 %lhs %rhs + %ulong = OpTypeInt 64 0 + %uint = OpTypeInt 32 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpUConvert %uint %18 + %20 = OpSConvert %ulong %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpSConvert %ulong %19 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %8 = OpIMul %uint %22 %25 + %26 = OpSConvert %ulong %19 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %26 + OpStore %27 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm32 similarity index 65% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm32 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm32 index 2bf9532d..a9ffa99f 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm32 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm32 @@ -1,47 +1,47 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 23 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %22 FuncParamAttr NoWrite - %22 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %20 NoUnsignedWrap - OpGroupDecorate %22 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + OpGroupDecorate %7 %lhs %rhs %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 + %2 = OpFunction %void None %14 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 + %15 = OpLabel + %16 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 %19 = OpLoad %uint %18 Aligned 4 - %20 = OpIMul %uint %17 %19 - %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %21 %20 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %8 = OpIMul %uint %19 %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpStore %22 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm64 similarity index 58% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm64 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm64 index a41bc23b..73ca88b0 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm64 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spvasm64 @@ -1,53 +1,53 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 28 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %27 FuncParamAttr NoWrite - %27 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %24 NoUnsignedWrap - OpGroupDecorate %27 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + OpGroupDecorate %7 %lhs %rhs %ulong = OpTypeInt 64 0 %uint = OpTypeInt 32 0 %v3ulong = OpTypeVector %ulong 3 %_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 + %2 = OpFunction %void None %15 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 - %23 = OpLoad %uint %22 Aligned 4 - %24 = OpIMul %uint %20 %23 - %25 = OpSConvert %ulong %17 - %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %25 - OpStore %26 %24 Aligned 4 + %16 = OpLabel + %17 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpUConvert %uint %18 + %20 = OpSConvert %ulong %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpSConvert %ulong %19 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %8 = OpIMul %uint %22 %25 + %26 = OpSConvert %ulong %19 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %26 + OpStore %27 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm32 similarity index 64% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm32 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm32 index d8ec6666..06423738 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm32 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm32 @@ -1,46 +1,46 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 22 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %21 FuncParamAttr NoWrite - OpDecorate %19 NoSignedWrap - %21 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + OpDecorate %8 NoSignedWrap + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %21 %lhs %rhs + OpGroupDecorate %7 %lhs %rhs %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %v3uint = OpTypeVector %uint 3 %_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 + %2 = OpFunction %void None %15 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %19 = OpSNegate %uint %17 - %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %20 %19 Aligned 4 + %16 = OpLabel + %17 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 + %20 = OpLoad %uint %19 Aligned 4 + %8 = OpSNegate %uint %20 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %18 + OpStore %21 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm64 similarity index 62% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm64 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm64 index 7fa68c15..654b4978 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm64 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spvasm64 @@ -1,28 +1,28 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 ; Bound: 26 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %25 FuncParamAttr NoWrite - OpDecorate %22 NoSignedWrap - %25 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + OpDecorate %8 NoSignedWrap + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %25 %lhs %rhs + OpGroupDecorate %7 %lhs %rhs %ulong = OpTypeInt 64 0 %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 @@ -30,22 +30,22 @@ %_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 + %2 = OpFunction %void None %16 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %22 = OpSNegate %uint %20 - %23 = OpSConvert %ulong %17 - %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %23 - OpStore %24 %22 Aligned 4 + %17 = OpLabel + %18 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpUConvert %uint %19 + %21 = OpSConvert %ulong %20 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %21 + %23 = OpLoad %uint %22 Aligned 4 + %8 = OpSNegate %uint %23 + %24 = OpSConvert %ulong %20 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %24 + OpStore %25 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm32 new file mode 100644 index 00000000..4e80aefe --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm32 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %8 NoSignedWrap + OpGroupDecorate %7 %lhs %rhs + %uint = OpTypeInt 32 0 + %uint_31 = OpConstant %uint 31 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 + %20 = OpLoad %uint %19 Aligned 4 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %18 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpBitwiseAnd %uint %22 %uint_31 + %8 = OpShiftLeftLogical %uint %20 %23 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %18 + OpStore %24 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm64 similarity index 59% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm64 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm64 index 5ee04af3..82c83afa 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spvasm64 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm64 @@ -1,53 +1,55 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 28 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 30 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %27 FuncParamAttr NoWrite - %27 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %24 NoSignedWrap - OpGroupDecorate %27 %lhs %rhs + OpDecorate %8 NoSignedWrap + OpGroupDecorate %7 %lhs %rhs %ulong = OpTypeInt 64 0 %uint = OpTypeInt 32 0 + %uint_31 = OpConstant %uint 31 %v3ulong = OpTypeVector %ulong 3 %_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 + %2 = OpFunction %void None %16 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 + %17 = OpLabel + %18 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpUConvert %uint %19 + %21 = OpSConvert %ulong %20 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %21 %23 = OpLoad %uint %22 Aligned 4 - %24 = OpIMul %uint %20 %23 - %25 = OpSConvert %ulong %17 - %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %25 - OpStore %26 %24 Aligned 4 + %24 = OpSConvert %ulong %20 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %24 + %26 = OpLoad %uint %25 Aligned 4 + %27 = OpBitwiseAnd %uint %26 %uint_31 + %8 = OpShiftLeftLogical %uint %23 %27 + %28 = OpSConvert %ulong %20 + %29 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %28 + OpStore %29 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm32 new file mode 100644 index 00000000..bd8f3aa0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm32 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpDecorate %8 NoUnsignedWrap + OpGroupDecorate %7 %lhs %rhs + %uint = OpTypeInt 32 0 + %uint_31 = OpConstant %uint 31 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 + %20 = OpLoad %uint %19 Aligned 4 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %18 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpBitwiseAnd %uint %22 %uint_31 + %8 = OpShiftLeftLogical %uint %20 %23 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %18 + OpStore %24 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm64 similarity index 59% rename from test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm64 rename to test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm64 index 3b8b253a..a0e8a751 100644 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spvasm64 +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm64 @@ -1,53 +1,55 @@ ; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 28 +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 30 ; Schema: 0 OpCapability Addresses OpCapability Linkage OpCapability Kernel OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" %1 = OpExtInstImport "OpenCL.std" OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" + OpEntryPoint Kernel %2 "fmath_cl" OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" OpName %out "out" OpName %lhs "lhs" OpName %rhs "rhs" - OpDecorate %27 FuncParamAttr NoWrite - %27 = OpDecorationGroup + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId OpDecorate %__spirv_BuiltInGlobalInvocationId Constant OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %24 NoSignedWrap - OpGroupDecorate %27 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + OpGroupDecorate %7 %lhs %rhs %ulong = OpTypeInt 64 0 %uint = OpTypeInt 32 0 + %uint_31 = OpConstant %uint 31 %v3ulong = OpTypeVector %ulong 3 %_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong %void = OpTypeVoid %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 + %2 = OpFunction %void None %16 %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 + %17 = OpLabel + %18 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpUConvert %uint %19 + %21 = OpSConvert %ulong %20 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %21 %23 = OpLoad %uint %22 Aligned 4 - %24 = OpIAdd %uint %20 %23 - %25 = OpSConvert %ulong %17 - %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %25 - OpStore %26 %24 Aligned 4 + %24 = OpSConvert %ulong %20 + %25 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %24 + %26 = OpLoad %uint %25 Aligned 4 + %27 = OpBitwiseAnd %uint %26 %uint_31 + %8 = OpShiftLeftLogical %uint %23 %27 + %28 = OpSConvert %ulong %20 + %29 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %28 + OpStore %29 %8 Aligned 4 OpReturn OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm32 new file mode 100644 index 00000000..9dc688e4 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpGroupDecorate %7 %lhs %rhs + OpDecorate %8 NoSignedWrap + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %14 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %8 = OpISub %uint %19 %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpStore %22 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm64 new file mode 100644 index 00000000..a010d1c0 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm64 @@ -0,0 +1,53 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpGroupDecorate %7 %lhs %rhs + OpDecorate %8 NoSignedWrap + %ulong = OpTypeInt 64 0 + %uint = OpTypeInt 32 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpUConvert %uint %18 + %20 = OpSConvert %ulong %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpSConvert %ulong %19 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %8 = OpISub %uint %22 %25 + %26 = OpSConvert %ulong %19 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %26 + OpStore %27 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm32 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm32 new file mode 100644 index 00000000..43ce2570 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpGroupDecorate %7 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %14 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %8 = OpISub %uint %19 %21 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpStore %22 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm64 b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm64 new file mode 100644 index 00000000..e68e5596 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm64 @@ -0,0 +1,53 @@ +; SPIR-V +; Version: 1.1 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpExtension "SPV_KHR_no_integer_wrap_decoration" + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_cl" + OpSource OpenCL_C 200000 + OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" + OpName %out "out" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %7 FuncParamAttr NoWrite + %7 = OpDecorationGroup + OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId + OpDecorate %__spirv_BuiltInGlobalInvocationId Constant + OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import + OpGroupDecorate %7 %lhs %rhs + OpDecorate %8 NoUnsignedWrap + %ulong = OpTypeInt 64 0 + %uint = OpTypeInt 32 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpUConvert %uint %18 + %20 = OpSConvert %ulong %19 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpSConvert %ulong %19 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %8 = OpISub %uint %22 %25 + %26 = OpSConvert %ulong %19 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %26 + OpStore %27 %8 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/fadd_double.spvasm32 new file mode 100644 index 00000000..9a4a9336 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 Aligned 8 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 Aligned 8 + %22 = OpFAdd %double %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %17 + OpStore %23 %22 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/fadd_double.spvasm64 new file mode 100644 index 00000000..9e51b19f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %20 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %20 + %24 = OpLoad %double %23 Aligned 8 + %25 = OpFAdd %double %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %20 + OpStore %26 %25 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_double2.spvasm32 b/test_conformance/spirv_new/spirv_asm/fadd_double2.spvasm32 new file mode 100644 index 00000000..111d6c8c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_double2.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 + %20 = OpLoad %v2double %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 + %22 = OpLoad %v2double %21 Aligned 16 + %23 = OpFAdd %v2double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_double2.spvasm64 b/test_conformance/spirv_new/spirv_asm/fadd_double2.spvasm64 new file mode 100644 index 00000000..b77917cc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_double2.spvasm64 @@ -0,0 +1,51 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %21 + %23 = OpLoad %v2double %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %21 + %25 = OpLoad %v2double %24 Aligned 16 + %26 = OpFAdd %v2double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/fadd_float.spvasm32 new file mode 100644 index 00000000..ef7d0452 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_float.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 + %19 = OpLoad %float %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 + %21 = OpLoad %float %20 Aligned 4 + %22 = OpFAdd %float %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 + OpStore %23 %22 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/fadd_float.spvasm64 new file mode 100644 index 00000000..15b5652e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_float.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %20 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %20 + %24 = OpLoad %float %23 Aligned 4 + %25 = OpFAdd %float %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %20 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/fadd_float4.spvasm32 new file mode 100644 index 00000000..6f318ade --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_float4.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 + %22 = OpLoad %v4float %21 Aligned 16 + %23 = OpFAdd %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/fadd_float4.spvasm64 new file mode 100644 index 00000000..7c83efaa --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_float4.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %21 + %25 = OpLoad %v4float %24 Aligned 16 + %26 = OpFAdd %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_half.spvasm32 b/test_conformance/spirv_new/spirv_asm/fadd_half.spvasm32 new file mode 100644 index 00000000..7f9ff113 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_half.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %17 + %19 = OpLoad %half %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %17 + %21 = OpLoad %half %20 + %22 = OpFAdd %half %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %17 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fadd_half.spvasm64 b/test_conformance/spirv_new/spirv_asm/fadd_half.spvasm64 new file mode 100644 index 00000000..7f069cc2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fadd_half.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %20 + %22 = OpLoad %half %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %20 + %24 = OpLoad %half %23 + %25 = OpFAdd %half %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %20 + OpStore %26 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/fdiv_double.spvasm32 new file mode 100644 index 00000000..eae4280f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 Aligned 8 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 Aligned 8 + %22 = OpFDiv %double %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %17 + OpStore %23 %22 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/fdiv_double.spvasm64 new file mode 100644 index 00000000..613178fc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %20 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %20 + %24 = OpLoad %double %23 Aligned 8 + %25 = OpFDiv %double %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %20 + OpStore %26 %25 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_double2.spvasm32 b/test_conformance/spirv_new/spirv_asm/fdiv_double2.spvasm32 new file mode 100644 index 00000000..dff1bd9a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_double2.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 + %20 = OpLoad %v2double %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 + %22 = OpLoad %v2double %21 Aligned 16 + %23 = OpFDiv %v2double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_double2.spvasm64 b/test_conformance/spirv_new/spirv_asm/fdiv_double2.spvasm64 new file mode 100644 index 00000000..09069748 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_double2.spvasm64 @@ -0,0 +1,51 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %21 + %23 = OpLoad %v2double %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %21 + %25 = OpLoad %v2double %24 Aligned 16 + %26 = OpFDiv %v2double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/fdiv_float.spvasm32 new file mode 100644 index 00000000..f12a75fd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_float.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 + %19 = OpLoad %float %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 + %21 = OpLoad %float %20 Aligned 4 + %22 = OpFDiv %float %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 + OpStore %23 %22 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/fdiv_float.spvasm64 new file mode 100644 index 00000000..d9f7e374 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_float.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %20 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %20 + %24 = OpLoad %float %23 Aligned 4 + %25 = OpFDiv %float %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %20 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/fdiv_float4.spvasm32 new file mode 100644 index 00000000..2e494d92 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_float4.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 + %22 = OpLoad %v4float %21 Aligned 16 + %23 = OpFDiv %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/fdiv_float4.spvasm64 new file mode 100644 index 00000000..bcfbee7c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_float4.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %21 + %25 = OpLoad %v4float %24 Aligned 16 + %26 = OpFDiv %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_half.spvasm32 b/test_conformance/spirv_new/spirv_asm/fdiv_half.spvasm32 new file mode 100644 index 00000000..03c56e53 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_half.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %17 + %19 = OpLoad %half %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %17 + %21 = OpLoad %half %20 + %22 = OpFDiv %half %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %17 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fdiv_half.spvasm64 b/test_conformance/spirv_new/spirv_asm/fdiv_half.spvasm64 new file mode 100644 index 00000000..1001b32c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fdiv_half.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %20 + %22 = OpLoad %half %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %20 + %24 = OpLoad %half %23 + %25 = OpFDiv %half %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %20 + OpStore %26 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmod_double.spvasm32 new file mode 100644 index 00000000..477f7b3d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 Aligned 8 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 Aligned 8 + %22 = OpFMod %double %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %17 + OpStore %23 %22 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmod_double.spvasm64 new file mode 100644 index 00000000..a5c4cd42 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %20 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %20 + %24 = OpLoad %double %23 Aligned 8 + %25 = OpFMod %double %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %20 + OpStore %26 %25 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_double2.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmod_double2.spvasm32 new file mode 100644 index 00000000..c87a039e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_double2.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 + %20 = OpLoad %v2double %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 + %22 = OpLoad %v2double %21 Aligned 16 + %23 = OpFMod %v2double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_double2.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmod_double2.spvasm64 new file mode 100644 index 00000000..8fd6538c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_double2.spvasm64 @@ -0,0 +1,51 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %21 + %23 = OpLoad %v2double %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %21 + %25 = OpLoad %v2double %24 Aligned 16 + %26 = OpFMod %v2double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmod_float.spvasm32 new file mode 100644 index 00000000..89e67086 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_float.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 + %19 = OpLoad %float %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 + %21 = OpLoad %float %20 Aligned 4 + %22 = OpFMod %float %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 + OpStore %23 %22 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmod_float.spvasm64 new file mode 100644 index 00000000..e9262b12 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_float.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %20 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %20 + %24 = OpLoad %float %23 Aligned 4 + %25 = OpFMod %float %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %20 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmod_float4.spvasm32 new file mode 100644 index 00000000..e23bce82 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_float4.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 + %22 = OpLoad %v4float %21 Aligned 16 + %23 = OpFMod %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmod_float4.spvasm64 new file mode 100644 index 00000000..aaf4206c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_float4.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %21 + %25 = OpLoad %v4float %24 Aligned 16 + %26 = OpFMod %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_half.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmod_half.spvasm32 new file mode 100644 index 00000000..68f0557b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_half.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %17 + %19 = OpLoad %half %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %17 + %21 = OpLoad %half %20 + %22 = OpFMod %half %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %17 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmod_half.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmod_half.spvasm64 new file mode 100644 index 00000000..9778bc0b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmod_half.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %20 + %22 = OpLoad %half %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %20 + %24 = OpLoad %half %23 + %25 = OpFMod %half %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %20 + OpStore %26 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmul_double.spvasm32 new file mode 100644 index 00000000..38db8d87 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 Aligned 8 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 Aligned 8 + %22 = OpFMul %double %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %17 + OpStore %23 %22 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmul_double.spvasm64 new file mode 100644 index 00000000..40b13b02 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %20 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %20 + %24 = OpLoad %double %23 Aligned 8 + %25 = OpFMul %double %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %20 + OpStore %26 %25 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_double2.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmul_double2.spvasm32 new file mode 100644 index 00000000..0d631340 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_double2.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 + %20 = OpLoad %v2double %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 + %22 = OpLoad %v2double %21 Aligned 16 + %23 = OpFMul %v2double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_double2.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmul_double2.spvasm64 new file mode 100644 index 00000000..5cb1dae3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_double2.spvasm64 @@ -0,0 +1,51 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %21 + %23 = OpLoad %v2double %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %21 + %25 = OpLoad %v2double %24 Aligned 16 + %26 = OpFMul %v2double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmul_float.spvasm32 new file mode 100644 index 00000000..0b32b87d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_float.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 + %19 = OpLoad %float %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 + %21 = OpLoad %float %20 Aligned 4 + %22 = OpFMul %float %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 + OpStore %23 %22 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmul_float.spvasm64 new file mode 100644 index 00000000..e10a4253 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_float.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %20 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %20 + %24 = OpLoad %float %23 Aligned 4 + %25 = OpFMul %float %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %20 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmul_float4.spvasm32 new file mode 100644 index 00000000..1884e586 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_float4.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 + %22 = OpLoad %v4float %21 Aligned 16 + %23 = OpFMul %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmul_float4.spvasm64 new file mode 100644 index 00000000..63c5dd7a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_float4.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %21 + %25 = OpLoad %v4float %24 Aligned 16 + %26 = OpFMul %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_half.spvasm32 b/test_conformance/spirv_new/spirv_asm/fmul_half.spvasm32 new file mode 100644 index 00000000..efeee4ec --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_half.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %17 + %19 = OpLoad %half %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %17 + %21 = OpLoad %half %20 + %22 = OpFMul %half %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %17 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fmul_half.spvasm64 b/test_conformance/spirv_new/spirv_asm/fmul_half.spvasm64 new file mode 100644 index 00000000..a944ced8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fmul_half.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %20 + %22 = OpLoad %half %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %20 + %24 = OpLoad %half %23 + %25 = OpFMul %half %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %20 + OpStore %26 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/frem_double.spvasm32 new file mode 100644 index 00000000..059bcb7b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 Aligned 8 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 Aligned 8 + %22 = OpFRem %double %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %17 + OpStore %23 %22 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/frem_double.spvasm64 new file mode 100644 index 00000000..e9372cdc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %20 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %20 + %24 = OpLoad %double %23 Aligned 8 + %25 = OpFRem %double %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %20 + OpStore %26 %25 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_double2.spvasm32 b/test_conformance/spirv_new/spirv_asm/frem_double2.spvasm32 new file mode 100644 index 00000000..6b6df427 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_double2.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 + %20 = OpLoad %v2double %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 + %22 = OpLoad %v2double %21 Aligned 16 + %23 = OpFRem %v2double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_double2.spvasm64 b/test_conformance/spirv_new/spirv_asm/frem_double2.spvasm64 new file mode 100644 index 00000000..afcd0861 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_double2.spvasm64 @@ -0,0 +1,51 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %21 + %23 = OpLoad %v2double %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %21 + %25 = OpLoad %v2double %24 Aligned 16 + %26 = OpFRem %v2double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/frem_float.spvasm32 new file mode 100644 index 00000000..8a67ea3e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_float.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 + %19 = OpLoad %float %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 + %21 = OpLoad %float %20 Aligned 4 + %22 = OpFRem %float %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 + OpStore %23 %22 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/frem_float.spvasm64 new file mode 100644 index 00000000..4b087068 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_float.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %20 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %20 + %24 = OpLoad %float %23 Aligned 4 + %25 = OpFRem %float %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %20 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/frem_float4.spvasm32 new file mode 100644 index 00000000..d2f06b45 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_float4.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 + %22 = OpLoad %v4float %21 Aligned 16 + %23 = OpFRem %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/frem_float4.spvasm64 new file mode 100644 index 00000000..efecb17b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_float4.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %21 + %25 = OpLoad %v4float %24 Aligned 16 + %26 = OpFRem %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_half.spvasm32 b/test_conformance/spirv_new/spirv_asm/frem_half.spvasm32 new file mode 100644 index 00000000..f6fc04ed --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_half.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %17 + %19 = OpLoad %half %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %17 + %21 = OpLoad %half %20 + %22 = OpFRem %half %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %17 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/frem_half.spvasm64 b/test_conformance/spirv_new/spirv_asm/frem_half.spvasm64 new file mode 100644 index 00000000..06089631 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/frem_half.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %20 + %22 = OpLoad %half %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %20 + %24 = OpLoad %half %23 + %25 = OpFRem %half %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %20 + OpStore %26 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/fsub_double.spvasm32 new file mode 100644 index 00000000..a8f161fa --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %17 + %19 = OpLoad %double %18 Aligned 8 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %17 + %21 = OpLoad %double %20 Aligned 8 + %22 = OpFSub %double %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %17 + OpStore %23 %22 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/fsub_double.spvasm64 new file mode 100644 index 00000000..36beb94d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %lhs %20 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %20 + %24 = OpLoad %double %23 Aligned 8 + %25 = OpFSub %double %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %res %20 + OpStore %26 %25 Aligned 8 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_double2.spvasm32 b/test_conformance/spirv_new/spirv_asm/fsub_double2.spvasm32 new file mode 100644 index 00000000..6a3aa188 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_double2.spvasm32 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %18 + %20 = OpLoad %v2double %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %18 + %22 = OpLoad %v2double %21 Aligned 16 + %23 = OpFSub %v2double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_double2.spvasm64 b/test_conformance/spirv_new/spirv_asm/fsub_double2.spvasm64 new file mode 100644 index 00000000..1c73bc91 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_double2.spvasm64 @@ -0,0 +1,51 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Float64 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_v2double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %lhs %21 + %23 = OpLoad %v2double %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %rhs %21 + %25 = OpLoad %v2double %24 Aligned 16 + %26 = OpFSub %v2double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/fsub_float.spvasm32 new file mode 100644 index 00000000..95d58eb3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_float.spvasm32 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %17 + %19 = OpLoad %float %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %17 + %21 = OpLoad %float %20 Aligned 4 + %22 = OpFSub %float %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %17 + OpStore %23 %22 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/fsub_float.spvasm64 new file mode 100644 index 00000000..ff1089f8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_float.spvasm64 @@ -0,0 +1,49 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %lhs %20 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %20 + %24 = OpLoad %float %23 Aligned 4 + %25 = OpFSub %float %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %res %20 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/fsub_float4.spvasm32 new file mode 100644 index 00000000..039864fd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_float4.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %18 + %22 = OpLoad %v4float %21 Aligned 16 + %23 = OpFSub %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/fsub_float4.spvasm64 new file mode 100644 index 00000000..4b7ace20 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_float4.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %entry = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %rhs %21 + %25 = OpLoad %v4float %24 Aligned 16 + %26 = OpFSub %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_half.spvasm32 b/test_conformance/spirv_new/spirv_asm/fsub_half.spvasm32 new file mode 100644 index 00000000..c8698a4f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_half.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 24 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %17 + %19 = OpLoad %half %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %17 + %21 = OpLoad %half %20 + %22 = OpFSub %half %19 %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %17 + OpStore %23 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/fsub_half.spvasm64 b/test_conformance/spirv_new/spirv_asm/fsub_half.spvasm64 new file mode 100644 index 00000000..7889c841 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/fsub_half.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + %1 = OpExtInstImport "OpenCL.std" + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %2 "fmath_spv" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpName %entry "entry" + OpDecorate %7 FuncParamAttr NoCapture + %7 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %7 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_half = OpTypePointer CrossWorkgroup %half + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half %_ptr_CrossWorkgroup_half + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %2 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_half + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_half + %entry = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %lhs %20 + %22 = OpLoad %half %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %rhs %20 + %24 = OpLoad %half %23 + %25 = OpFSub %half %22 %24 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_half %res %20 + OpStore %26 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/label_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/label_simple.spvasm32 new file mode 100644 index 00000000..5fd46309 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/label_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "label_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %10 %13 + %16 = OpLoad %uint %14 + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/label_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/label_simple.spvasm64 new file mode 100644 index 00000000..2c403fa2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/label_simple.spvasm64 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "label_simple" + OpName %in "in" + OpName %out "out" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + %20 = OpLoad %uint %18 + OpStore %19 %20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/lifetime_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/lifetime_simple.spvasm32 new file mode 100644 index 00000000..644607a1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/lifetime_simple.spvasm32 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "lifetime_simple" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpVariable %_ptr_Function_uint Function + %18 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %uint %18 0 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpISub %uint %21 %23 + OpLifetimeStart %17 0 + OpStore %17 %24 + %25 = OpLoad %uint %17 + OpLifetimeStop %17 0 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %26 %25 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/lifetime_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/lifetime_simple.spvasm64 new file mode 100644 index 00000000..06e4b813 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/lifetime_simple.spvasm64 @@ -0,0 +1,55 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "lifetime_simple" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + %28 = OpISub %uint %25 %27 + OpLifetimeStart %19 0 + OpStore %19 %28 + %29 = OpLoad %uint %19 + OpLifetimeStop %19 0 + %30 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %30 %29 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/linkage_export.spvasm32 b/test_conformance/spirv_new/spirv_asm/linkage_export.spvasm32 new file mode 100644 index 00000000..9208b199 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/linkage_export.spvasm32 @@ -0,0 +1,20 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 8 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpName %simple_fnegate_linkage "simple_fnegate_linkage" + OpDecorate %simple_fnegate_linkage LinkageAttributes "simple_fnegate_linkage" Export + %void = OpTypeVoid + %float = OpTypeFloat 32 + %4 = OpTypeFunction %float %float +%simple_fnegate_linkage = OpFunction %float Const %4 + %5 = OpFunctionParameter %float + %6 = OpLabel + %7 = OpFNegate %float %5 + OpReturnValue %7 + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/linkage_export.spvasm64 b/test_conformance/spirv_new/spirv_asm/linkage_export.spvasm64 new file mode 100644 index 00000000..f13f6479 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/linkage_export.spvasm64 @@ -0,0 +1,20 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 8 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical64 OpenCL + OpName %simple_fnegate_linkage "simple_fnegate_linkage" + OpDecorate %simple_fnegate_linkage LinkageAttributes "simple_fnegate_linkage" Export + %void = OpTypeVoid + %float = OpTypeFloat 32 + %4 = OpTypeFunction %float %float +%simple_fnegate_linkage = OpFunction %float Const %4 + %5 = OpFunctionParameter %float + %6 = OpLabel + %7 = OpFNegate %float %5 + OpReturnValue %7 + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/linkage_import.spvasm32 b/test_conformance/spirv_new/spirv_asm/linkage_import.spvasm32 new file mode 100644 index 00000000..0171ce3a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/linkage_import.spvasm32 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "test_linkage" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %4 LinkageAttributes "simple_fnegate_linkage" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %12 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %4 = OpFunction %float Const %12 + %13 = OpFunctionParameter %float + OpFunctionEnd + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %14 = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + %18 = OpLoad %float %17 + %19 = OpFunctionCall %float %4 %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/linkage_import.spvasm64 b/test_conformance/spirv_new/spirv_asm/linkage_import.spvasm64 new file mode 100644 index 00000000..c3212a25 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/linkage_import.spvasm64 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "test_linkage" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %4 LinkageAttributes "simple_fnegate_linkage" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %13 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %4 = OpFunction %float Const %13 + %14 = OpFunctionParameter %float + OpFunctionEnd + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %15 = OpLabel + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %19 + %21 = OpLoad %float %20 + %22 = OpFunctionCall %float %4 %21 + OpStore %20 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_dont_unroll.spvasm32 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_dont_unroll.spvasm32 new file mode 100644 index 00000000..d9a7a9b3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_dont_unroll.spvasm32 @@ -0,0 +1,70 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 40 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_conditional_dont_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpVariable %_ptr_Function_uint Function + %21 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %22 = OpCompositeExtract %uint %21 0 + OpStore %19 %uint_0 Aligned 4 + OpStore %20 %uint_0 Aligned 4 + OpBranch %23 + %23 = OpLabel + %24 = OpLoad %uint %20 + %25 = OpSLessThan %bool %24 %rep + OpLoopMerge %26 %27 DontUnroll + OpBranchConditional %25 %28 %26 + %28 = OpLabel + %29 = OpLoad %uint %20 + %30 = OpIMul %uint %29 %num + %31 = OpIAdd %uint %22 %30 + %32 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %31 + %33 = OpLoad %uint %32 + %34 = OpLoad %uint %19 + %35 = OpIAdd %uint %34 %33 + OpStore %19 %35 Aligned 4 + OpBranch %27 + %27 = OpLabel + %36 = OpLoad %uint %20 + %37 = OpIAdd %uint %36 %uint_1 + OpStore %20 %37 + OpBranch %23 + %26 = OpLabel + %38 = OpLoad %uint %19 + %39 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %22 + OpStore %39 %38 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_dont_unroll.spvasm64 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_dont_unroll.spvasm64 new file mode 100644 index 00000000..286cbd83 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_dont_unroll.spvasm64 @@ -0,0 +1,76 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 45 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_conditional_dont_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpVariable %_ptr_Function_uint Function + %23 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %24 = OpCompositeExtract %ulong %23 0 + %25 = OpShiftLeftLogical %ulong %24 %ulong_32 + %26 = OpShiftRightArithmetic %ulong %25 %ulong_32 + %27 = OpSConvert %uint %26 + OpStore %21 %uint_0 Aligned 4 + OpStore %22 %uint_0 Aligned 4 + OpBranch %28 + %28 = OpLabel + %29 = OpLoad %uint %22 + %30 = OpSLessThan %bool %29 %rep + OpLoopMerge %31 %32 DontUnroll + OpBranchConditional %30 %33 %31 + %33 = OpLabel + %34 = OpLoad %uint %22 + %35 = OpIMul %uint %34 %num + %36 = OpIAdd %uint %27 %35 + %37 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %36 + %38 = OpLoad %uint %37 + %39 = OpLoad %uint %21 + %40 = OpIAdd %uint %39 %38 + OpStore %21 %40 Aligned 4 + OpBranch %32 + %32 = OpLabel + %41 = OpLoad %uint %22 + %42 = OpIAdd %uint %41 %uint_1 + OpStore %22 %42 + OpBranch %28 + %31 = OpLabel + %43 = OpLoad %uint %21 + %44 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %26 + OpStore %44 %43 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_none.spvasm32 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_none.spvasm32 new file mode 100644 index 00000000..2e556de8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_none.spvasm32 @@ -0,0 +1,70 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 40 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_conditional_none" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpVariable %_ptr_Function_uint Function + %21 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %22 = OpCompositeExtract %uint %21 0 + OpStore %19 %uint_0 Aligned 4 + OpStore %20 %uint_0 Aligned 4 + OpBranch %23 + %23 = OpLabel + %24 = OpLoad %uint %20 + %25 = OpSLessThan %bool %24 %rep + OpLoopMerge %26 %27 None + OpBranchConditional %25 %28 %26 + %28 = OpLabel + %29 = OpLoad %uint %20 + %30 = OpIMul %uint %29 %num + %31 = OpIAdd %uint %22 %30 + %32 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %31 + %33 = OpLoad %uint %32 + %34 = OpLoad %uint %19 + %35 = OpIAdd %uint %34 %33 + OpStore %19 %35 Aligned 4 + OpBranch %27 + %27 = OpLabel + %36 = OpLoad %uint %20 + %37 = OpIAdd %uint %36 %uint_1 + OpStore %20 %37 + OpBranch %23 + %26 = OpLabel + %38 = OpLoad %uint %19 + %39 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %22 + OpStore %39 %38 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_none.spvasm64 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_none.spvasm64 new file mode 100644 index 00000000..cef58ed1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_none.spvasm64 @@ -0,0 +1,76 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 45 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_conditional_none" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpVariable %_ptr_Function_uint Function + %23 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %24 = OpCompositeExtract %ulong %23 0 + %25 = OpShiftLeftLogical %ulong %24 %ulong_32 + %26 = OpShiftRightArithmetic %ulong %25 %ulong_32 + %27 = OpSConvert %uint %26 + OpStore %21 %uint_0 Aligned 4 + OpStore %22 %uint_0 Aligned 4 + OpBranch %28 + %28 = OpLabel + %29 = OpLoad %uint %22 + %30 = OpSLessThan %bool %29 %rep + OpLoopMerge %31 %32 None + OpBranchConditional %30 %33 %31 + %33 = OpLabel + %34 = OpLoad %uint %22 + %35 = OpIMul %uint %34 %num + %36 = OpIAdd %uint %27 %35 + %37 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %36 + %38 = OpLoad %uint %37 + %39 = OpLoad %uint %21 + %40 = OpIAdd %uint %39 %38 + OpStore %21 %40 Aligned 4 + OpBranch %32 + %32 = OpLabel + %41 = OpLoad %uint %22 + %42 = OpIAdd %uint %41 %uint_1 + OpStore %22 %42 + OpBranch %28 + %31 = OpLabel + %43 = OpLoad %uint %21 + %44 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %26 + OpStore %44 %43 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_unroll.spvasm32 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_unroll.spvasm32 new file mode 100644 index 00000000..34e0d4af --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_unroll.spvasm32 @@ -0,0 +1,70 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 40 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_conditional_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpVariable %_ptr_Function_uint Function + %21 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %22 = OpCompositeExtract %uint %21 0 + OpStore %19 %uint_0 Aligned 4 + OpStore %20 %uint_0 Aligned 4 + OpBranch %23 + %23 = OpLabel + %24 = OpLoad %uint %20 + %25 = OpSLessThan %bool %24 %rep + OpLoopMerge %26 %27 Unroll + OpBranchConditional %25 %28 %26 + %28 = OpLabel + %29 = OpLoad %uint %20 + %30 = OpIMul %uint %29 %num + %31 = OpIAdd %uint %22 %30 + %32 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %31 + %33 = OpLoad %uint %32 + %34 = OpLoad %uint %19 + %35 = OpIAdd %uint %34 %33 + OpStore %19 %35 Aligned 4 + OpBranch %27 + %27 = OpLabel + %36 = OpLoad %uint %20 + %37 = OpIAdd %uint %36 %uint_1 + OpStore %20 %37 + OpBranch %23 + %26 = OpLabel + %38 = OpLoad %uint %19 + %39 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %22 + OpStore %39 %38 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_unroll.spvasm64 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_unroll.spvasm64 new file mode 100644 index 00000000..7abaa6f9 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_conditional_unroll.spvasm64 @@ -0,0 +1,76 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 45 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_conditional_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpVariable %_ptr_Function_uint Function + %23 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %24 = OpCompositeExtract %ulong %23 0 + %25 = OpShiftLeftLogical %ulong %24 %ulong_32 + %26 = OpShiftRightArithmetic %ulong %25 %ulong_32 + %27 = OpSConvert %uint %26 + OpStore %21 %uint_0 Aligned 4 + OpStore %22 %uint_0 Aligned 4 + OpBranch %28 + %28 = OpLabel + %29 = OpLoad %uint %22 + %30 = OpSLessThan %bool %29 %rep + OpLoopMerge %31 %32 Unroll + OpBranchConditional %30 %33 %31 + %33 = OpLabel + %34 = OpLoad %uint %22 + %35 = OpIMul %uint %34 %num + %36 = OpIAdd %uint %27 %35 + %37 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %36 + %38 = OpLoad %uint %37 + %39 = OpLoad %uint %21 + %40 = OpIAdd %uint %39 %38 + OpStore %21 %40 Aligned 4 + OpBranch %32 + %32 = OpLabel + %41 = OpLoad %uint %22 + %42 = OpIAdd %uint %41 %uint_1 + OpStore %22 %42 + OpBranch %28 + %31 = OpLabel + %43 = OpLoad %uint %21 + %44 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %26 + OpStore %44 %43 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_dont_unroll.spvasm32 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_dont_unroll.spvasm32 new file mode 100644 index 00000000..efa68726 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_dont_unroll.spvasm32 @@ -0,0 +1,72 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_dont_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpVariable %_ptr_Function_uint Function + %21 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %22 = OpCompositeExtract %uint %21 0 + OpStore %19 %uint_0 Aligned 4 + OpStore %20 %uint_0 Aligned 4 + OpBranch %23 + %23 = OpLabel + OpLoopMerge %24 %25 DontUnroll + OpBranch %26 + %26 = OpLabel + %27 = OpLoad %uint %20 + %28 = OpSLessThan %bool %27 %rep + OpBranchConditional %28 %29 %24 + %29 = OpLabel + %30 = OpLoad %uint %20 + %31 = OpIMul %uint %30 %num + %32 = OpIAdd %uint %22 %31 + %33 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %32 + %34 = OpLoad %uint %33 + %35 = OpLoad %uint %19 + %36 = OpIAdd %uint %35 %34 + OpStore %19 %36 Aligned 4 + OpBranch %25 + %25 = OpLabel + %37 = OpLoad %uint %20 + %38 = OpIAdd %uint %37 %uint_1 + OpStore %20 %38 + OpBranch %23 + %24 = OpLabel + %39 = OpLoad %uint %19 + %40 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %22 + OpStore %40 %39 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_dont_unroll.spvasm64 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_dont_unroll.spvasm64 new file mode 100644 index 00000000..6f58f2c8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_dont_unroll.spvasm64 @@ -0,0 +1,78 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 46 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_dont_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpVariable %_ptr_Function_uint Function + %23 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %24 = OpCompositeExtract %ulong %23 0 + %25 = OpShiftLeftLogical %ulong %24 %ulong_32 + %26 = OpShiftRightArithmetic %ulong %25 %ulong_32 + %27 = OpSConvert %uint %26 + OpStore %21 %uint_0 Aligned 4 + OpStore %22 %uint_0 Aligned 4 + OpBranch %28 + %28 = OpLabel + OpLoopMerge %29 %30 DontUnroll + OpBranch %31 + %31 = OpLabel + %32 = OpLoad %uint %22 + %33 = OpSLessThan %bool %32 %rep + OpBranchConditional %33 %34 %29 + %34 = OpLabel + %35 = OpLoad %uint %22 + %36 = OpIMul %uint %35 %num + %37 = OpIAdd %uint %27 %36 + %38 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %37 + %39 = OpLoad %uint %38 + %40 = OpLoad %uint %21 + %41 = OpIAdd %uint %40 %39 + OpStore %21 %41 Aligned 4 + OpBranch %30 + %30 = OpLabel + %42 = OpLoad %uint %22 + %43 = OpIAdd %uint %42 %uint_1 + OpStore %22 %43 + OpBranch %28 + %29 = OpLabel + %44 = OpLoad %uint %21 + %45 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %26 + OpStore %45 %44 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_none.spvasm32 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_none.spvasm32 new file mode 100644 index 00000000..b925d5dd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_none.spvasm32 @@ -0,0 +1,72 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_none" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpVariable %_ptr_Function_uint Function + %21 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %22 = OpCompositeExtract %uint %21 0 + OpStore %19 %uint_0 Aligned 4 + OpStore %20 %uint_0 Aligned 4 + OpBranch %23 + %23 = OpLabel + OpLoopMerge %24 %25 None + OpBranch %26 + %26 = OpLabel + %27 = OpLoad %uint %20 + %28 = OpSLessThan %bool %27 %rep + OpBranchConditional %28 %29 %24 + %29 = OpLabel + %30 = OpLoad %uint %20 + %31 = OpIMul %uint %30 %num + %32 = OpIAdd %uint %22 %31 + %33 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %32 + %34 = OpLoad %uint %33 + %35 = OpLoad %uint %19 + %36 = OpIAdd %uint %35 %34 + OpStore %19 %36 Aligned 4 + OpBranch %25 + %25 = OpLabel + %37 = OpLoad %uint %20 + %38 = OpIAdd %uint %37 %uint_1 + OpStore %20 %38 + OpBranch %23 + %24 = OpLabel + %39 = OpLoad %uint %19 + %40 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %22 + OpStore %40 %39 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_none.spvasm64 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_none.spvasm64 new file mode 100644 index 00000000..3164d2bb --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_none.spvasm64 @@ -0,0 +1,78 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 46 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_none" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpVariable %_ptr_Function_uint Function + %23 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %24 = OpCompositeExtract %ulong %23 0 + %25 = OpShiftLeftLogical %ulong %24 %ulong_32 + %26 = OpShiftRightArithmetic %ulong %25 %ulong_32 + %27 = OpSConvert %uint %26 + OpStore %21 %uint_0 Aligned 4 + OpStore %22 %uint_0 Aligned 4 + OpBranch %28 + %28 = OpLabel + OpLoopMerge %29 %30 None + OpBranch %31 + %31 = OpLabel + %32 = OpLoad %uint %22 + %33 = OpSLessThan %bool %32 %rep + OpBranchConditional %33 %34 %29 + %34 = OpLabel + %35 = OpLoad %uint %22 + %36 = OpIMul %uint %35 %num + %37 = OpIAdd %uint %27 %36 + %38 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %37 + %39 = OpLoad %uint %38 + %40 = OpLoad %uint %21 + %41 = OpIAdd %uint %40 %39 + OpStore %21 %41 Aligned 4 + OpBranch %30 + %30 = OpLabel + %42 = OpLoad %uint %22 + %43 = OpIAdd %uint %42 %uint_1 + OpStore %22 %43 + OpBranch %28 + %29 = OpLabel + %44 = OpLoad %uint %21 + %45 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %26 + OpStore %45 %44 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_unroll.spvasm32 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_unroll.spvasm32 new file mode 100644 index 00000000..f5387ab4 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_unroll.spvasm32 @@ -0,0 +1,72 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpVariable %_ptr_Function_uint Function + %21 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %22 = OpCompositeExtract %uint %21 0 + OpStore %19 %uint_0 Aligned 4 + OpStore %20 %uint_0 Aligned 4 + OpBranch %23 + %23 = OpLabel + OpLoopMerge %24 %25 Unroll + OpBranch %26 + %26 = OpLabel + %27 = OpLoad %uint %20 + %28 = OpSLessThan %bool %27 %rep + OpBranchConditional %28 %29 %24 + %29 = OpLabel + %30 = OpLoad %uint %20 + %31 = OpIMul %uint %30 %num + %32 = OpIAdd %uint %22 %31 + %33 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %32 + %34 = OpLoad %uint %33 + %35 = OpLoad %uint %19 + %36 = OpIAdd %uint %35 %34 + OpStore %19 %36 Aligned 4 + OpBranch %25 + %25 = OpLabel + %37 = OpLoad %uint %20 + %38 = OpIAdd %uint %37 %uint_1 + OpStore %20 %38 + OpBranch %23 + %24 = OpLabel + %39 = OpLoad %uint %19 + %40 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %22 + OpStore %40 %39 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/loop_merge_branch_unroll.spvasm64 b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_unroll.spvasm64 new file mode 100644 index 00000000..fb6fcb68 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/loop_merge_branch_unroll.spvasm64 @@ -0,0 +1,78 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 46 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "loop_merge_branch_unroll" + OpName %res "res" + OpName %in "in" + OpName %rep "rep" + OpName %num "num" + OpDecorate %6 FuncParamAttr NoCapture + %6 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %6 %res %in + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rep = OpFunctionParameter %uint + %num = OpFunctionParameter %uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpVariable %_ptr_Function_uint Function + %23 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %24 = OpCompositeExtract %ulong %23 0 + %25 = OpShiftLeftLogical %ulong %24 %ulong_32 + %26 = OpShiftRightArithmetic %ulong %25 %ulong_32 + %27 = OpSConvert %uint %26 + OpStore %21 %uint_0 Aligned 4 + OpStore %22 %uint_0 Aligned 4 + OpBranch %28 + %28 = OpLabel + OpLoopMerge %29 %30 Unroll + OpBranch %31 + %31 = OpLabel + %32 = OpLoad %uint %22 + %33 = OpSLessThan %bool %32 %rep + OpBranchConditional %33 %34 %29 + %34 = OpLabel + %35 = OpLoad %uint %22 + %36 = OpIMul %uint %35 %num + %37 = OpIAdd %uint %27 %36 + %38 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %37 + %39 = OpLoad %uint %38 + %40 = OpLoad %uint %21 + %41 = OpIAdd %uint %40 %39 + OpStore %21 %41 Aligned 4 + OpBranch %30 + %30 = OpLabel + %42 = OpLoad %uint %22 + %43 = OpIAdd %uint %42 %uint_1 + OpStore %22 %43 + OpBranch %28 + %29 = OpLabel + %44 = OpLoad %uint %21 + %45 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %26 + OpStore %45 %44 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_const.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_function_const.spvasm32 new file mode 100644 index 00000000..b6640b80 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_const.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_function_const" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %11 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %12 = OpFunction %float Const %11 + %13 = OpFunctionParameter %float + %14 = OpLabel + %15 = OpFNegate %float %13 + OpReturnValue %15 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %18 + %20 = OpLoad %float %19 + %21 = OpFunctionCall %float %12 %20 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_const.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_function_const.spvasm64 new file mode 100644 index 00000000..97043561 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_const.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_function_const" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %12 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %13 = OpFunction %float Const %12 + %14 = OpFunctionParameter %float + %15 = OpLabel + %16 = OpFNegate %float %14 + OpReturnValue %16 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %21 + %23 = OpLoad %float %22 + %24 = OpFunctionCall %float %13 %23 + OpStore %22 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_inline.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_function_inline.spvasm32 new file mode 100644 index 00000000..6067d662 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_inline.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_function_inline" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %11 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %12 = OpFunction %float Inline %11 + %13 = OpFunctionParameter %float + %14 = OpLabel + %15 = OpFNegate %float %13 + OpReturnValue %15 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %18 + %20 = OpLoad %float %19 + %21 = OpFunctionCall %float %12 %20 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_inline.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_function_inline.spvasm64 new file mode 100644 index 00000000..f5b4a7ac --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_inline.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_function_inline" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %12 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %13 = OpFunction %float Inline %12 + %14 = OpFunctionParameter %float + %15 = OpLabel + %16 = OpFNegate %float %14 + OpReturnValue %16 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %21 + %23 = OpLoad %float %22 + %24 = OpFunctionCall %float %13 %23 + OpStore %22 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_noinline.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_function_noinline.spvasm32 new file mode 100644 index 00000000..2c6b8e03 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_noinline.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_function_noinline" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %11 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %12 = OpFunction %float DontInline %11 + %13 = OpFunctionParameter %float + %14 = OpLabel + %15 = OpFNegate %float %13 + OpReturnValue %15 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %18 + %20 = OpLoad %float %19 + %21 = OpFunctionCall %float %12 %20 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_noinline.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_function_noinline.spvasm64 new file mode 100644 index 00000000..67db8094 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_noinline.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_function_noinline" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %12 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %13 = OpFunction %float DontInline %12 + %14 = OpFunctionParameter %float + %15 = OpLabel + %16 = OpFNegate %float %14 + OpReturnValue %16 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %21 + %23 = OpLoad %float %22 + %24 = OpFunctionCall %float %13 %23 + OpStore %22 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_none.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_function_none.spvasm32 new file mode 100644 index 00000000..634df875 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_none.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_function_none" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %11 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %12 = OpFunction %float None %11 + %13 = OpFunctionParameter %float + %14 = OpLabel + %15 = OpFNegate %float %13 + OpReturnValue %15 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %18 + %20 = OpLoad %float %19 + %21 = OpFunctionCall %float %12 %20 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_none.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_function_none.spvasm64 new file mode 100644 index 00000000..451f9b77 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_none.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_function_none" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %12 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %13 = OpFunction %float None %12 + %14 = OpFunctionParameter %float + %15 = OpLabel + %16 = OpFNegate %float %14 + OpReturnValue %16 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %21 + %23 = OpLoad %float %22 + %24 = OpFunctionCall %float %13 %23 + OpStore %22 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_pure.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_function_pure.spvasm32 new file mode 100644 index 00000000..f4e3d67f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_pure.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_function_pure" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %11 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %12 = OpFunction %float Pure %11 + %13 = OpFunctionParameter %float + %14 = OpLabel + %15 = OpFNegate %float %13 + OpReturnValue %15 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %18 + %20 = OpLoad %float %19 + %21 = OpFunctionCall %float %12 %20 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_pure.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_function_pure.spvasm64 new file mode 100644 index 00000000..7ee623dc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_pure.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_function_pure" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %12 = OpTypeFunction %float %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %13 = OpFunction %float Pure %12 + %14 = OpFunctionParameter %float + %15 = OpLabel + %16 = OpFNegate %float %14 + OpReturnValue %16 + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %21 + %23 = OpLoad %float %22 + %24 = OpFunctionCall %float %13 %23 + OpStore %22 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_pure_ptr.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_function_pure_ptr.spvasm32 new file mode 100644 index 00000000..deab3d79 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_pure_ptr.spvasm32 @@ -0,0 +1,53 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_function_pure_ptr" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %uint_32 = OpConstant %uint 32 + %12 = OpTypeFunction %float %_ptr_CrossWorkgroup_float %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %uint %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %14 = OpFunction %float Pure %12 + %15 = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %15 %16 + %19 = OpLoad %float %18 + %20 = OpFNegate %float %19 + OpReturnValue %20 + OpFunctionEnd + %21 = OpFunction %void None %13 + %22 = OpFunctionParameter %_ptr_CrossWorkgroup_float + %23 = OpFunctionParameter %uint + %24 = OpFunctionParameter %float + %25 = OpLabel + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %22 %23 + OpStore %26 %24 + OpReturn + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %27 = OpLabel + %28 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %29 = OpCompositeExtract %uint %28 0 + %30 = OpFunctionCall %float %14 %in %29 + %31 = OpFunctionCall %void %21 %in %29 %30 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_function_pure_ptr.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_function_pure_ptr.spvasm64 new file mode 100644 index 00000000..3ebe9e4e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_function_pure_ptr.spvasm64 @@ -0,0 +1,56 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_function_pure_ptr" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 + %12 = OpTypeFunction %float %_ptr_CrossWorkgroup_float %ulong + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %ulong %float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %14 = OpFunction %float Pure %12 + %15 = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpFunctionParameter %ulong + %17 = OpLabel + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %15 %16 + %19 = OpLoad %float %18 + %20 = OpFNegate %float %19 + OpReturnValue %20 + OpFunctionEnd + %21 = OpFunction %void None %13 + %22 = OpFunctionParameter %_ptr_CrossWorkgroup_float + %23 = OpFunctionParameter %ulong + %24 = OpFunctionParameter %float + %25 = OpLabel + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %22 %23 + OpStore %26 %24 + OpReturn + OpFunctionEnd + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %27 = OpLabel + %28 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %29 = OpCompositeExtract %ulong %28 0 + %30 = OpShiftLeftLogical %ulong %29 %ulong_32 + %31 = OpShiftRightArithmetic %ulong %30 %ulong_32 + %32 = OpFunctionCall %float %14 %in %31 + %33 = OpFunctionCall %void %21 %in %31 %32 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_double.spvasm32 new file mode 100644 index 00000000..8864d098 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_double.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_double" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %13 + %15 = OpLoad %double %14 + %16 = OpFNegate %double %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_double.spvasm64 new file mode 100644 index 00000000..0e012e87 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_double.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_double" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %16 + %18 = OpLoad %double %17 + %19 = OpFNegate %double %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_float.spvasm32 new file mode 100644 index 00000000..90e5d6f5 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_float.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_float" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %13 + %15 = OpLoad %float %14 + %16 = OpFNegate %float %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_float.spvasm64 new file mode 100644 index 00000000..d3b6ce2c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_float.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_float" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + %18 = OpLoad %float %17 + %19 = OpFNegate %float %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_float4.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_float4.spvasm32 new file mode 100644 index 00000000..8752e74c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_float4.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_float4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %12 = OpLabel + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %in %14 + %16 = OpLoad %v4float %15 + %17 = OpFNegate %v4float %16 + OpStore %15 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_float4.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_float4.spvasm64 new file mode 100644 index 00000000..69095173 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_float4.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_float4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %in %17 + %19 = OpLoad %v4float %18 + %20 = OpFNegate %v4float %19 + OpStore %18 %20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_int.spvasm32 new file mode 100644 index 00000000..ed59bd72 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_int.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_int" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpLabel + %11 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %12 = OpCompositeExtract %uint %11 0 + %13 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %12 + %14 = OpLoad %uint %13 + %15 = OpSNegate %uint %14 + OpStore %13 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_int.spvasm64 new file mode 100644 index 00000000..241871bd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_int.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_int" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %16 + %18 = OpLoad %uint %17 + %19 = OpSNegate %uint %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_int4.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_int4.spvasm32 new file mode 100644 index 00000000..0e111b0d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_int4.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_int4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %13 + %15 = OpLoad %v4uint %14 + %16 = OpSNegate %v4uint %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_int4.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_int4.spvasm64 new file mode 100644 index 00000000..e1782d69 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_int4.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_int4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %17 + %19 = OpLoad %v4uint %18 + %20 = OpSNegate %v4uint %19 + OpStore %18 %20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_long.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_long.spvasm32 new file mode 100644 index 00000000..c513fd3b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_long.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_long" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %13 + %15 = OpLoad %ulong %14 + %16 = OpSNegate %ulong %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_long.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_long.spvasm64 new file mode 100644 index 00000000..edee5125 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_long.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_long" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %ulong %12 0 + %14 = OpShiftLeftLogical %ulong %13 %ulong_32 + %15 = OpShiftRightArithmetic %ulong %14 %ulong_32 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %15 + %17 = OpLoad %ulong %16 + %18 = OpSNegate %ulong %17 + OpStore %16 %18 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_short.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_neg_short.spvasm32 new file mode 100644 index 00000000..8e59eef2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_short.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_neg_short" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %13 + %15 = OpLoad %ushort %14 + %16 = OpSNegate %ushort %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_neg_short.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_neg_short.spvasm64 new file mode 100644 index 00000000..ca75370e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_neg_short.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_neg_short" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %16 + %18 = OpLoad %ushort %17 + %19 = OpSNegate %ushort %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_int.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_not_int.spvasm32 new file mode 100644 index 00000000..ef8f7b02 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_int.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_not_int" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpLabel + %11 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %12 = OpCompositeExtract %uint %11 0 + %13 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %12 + %14 = OpLoad %uint %13 + %15 = OpNot %uint %14 + OpStore %13 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_int.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_not_int.spvasm64 new file mode 100644 index 00000000..f796379a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_int.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_not_int" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %16 + %18 = OpLoad %uint %17 + %19 = OpNot %uint %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_int4.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_not_int4.spvasm32 new file mode 100644 index 00000000..07b900bd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_int4.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_not_int4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %13 + %15 = OpLoad %v4uint %14 + %16 = OpNot %v4uint %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_int4.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_not_int4.spvasm64 new file mode 100644 index 00000000..7eba008e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_int4.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_not_int4" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %17 + %19 = OpLoad %v4uint %18 + %20 = OpNot %v4uint %19 + OpStore %18 %20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_long.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_not_long.spvasm32 new file mode 100644 index 00000000..f88819d2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_long.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_not_long" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %13 + %15 = OpLoad %ulong %14 + %16 = OpNot %ulong %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_long.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_not_long.spvasm64 new file mode 100644 index 00000000..41dcc9f5 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_long.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_not_long" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %ulong %12 0 + %14 = OpShiftLeftLogical %ulong %13 %ulong_32 + %15 = OpShiftRightArithmetic %ulong %14 %ulong_32 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %15 + %17 = OpLoad %ulong %16 + %18 = OpNot %ulong %17 + OpStore %16 %18 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_short.spvasm32 b/test_conformance/spirv_new/spirv_asm/op_not_short.spvasm32 new file mode 100644 index 00000000..3718b913 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_short.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "op_not_short" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %13 + %15 = OpLoad %ushort %14 + %16 = OpNot %ushort %15 + OpStore %14 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/op_not_short.spvasm64 b/test_conformance/spirv_new/spirv_asm/op_not_short.spvasm64 new file mode 100644 index 00000000..0d371c3a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/op_not_short.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "op_not_short" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %16 + %18 = OpLoad %ushort %17 + %19 = OpNot %ushort %18 + OpStore %17 %19 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/opaque.spvasm32 b/test_conformance/spirv_new/spirv_asm/opaque.spvasm32 new file mode 100644 index 00000000..ef133c10 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/opaque.spvasm32 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "opaque" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %4 LinkageAttributes "opaque_store" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%Opaque_opaque_t = OpTypeOpaque "opaque_t" +%_ptr_CrossWorkgroup_Opaque_opaque_t = OpTypePointer CrossWorkgroup %Opaque_opaque_t +%float_3_14159274 = OpConstant %float 3.14159274 + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_Opaque_opaque_t +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_Opaque_opaque_t %uint %float + %4 = OpFunction %void None %14 + %15 = OpFunctionParameter %_ptr_CrossWorkgroup_Opaque_opaque_t + %16 = OpFunctionParameter %uint + %17 = OpFunctionParameter %float + OpFunctionEnd + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_Opaque_opaque_t + %18 = OpLabel + %19 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %20 = OpCompositeExtract %uint %19 0 + %21 = OpFunctionCall %void %4 %in %20 %float_3_14159274 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/opaque.spvasm64 b/test_conformance/spirv_new/spirv_asm/opaque.spvasm64 new file mode 100644 index 00000000..50ef5a62 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/opaque.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "opaque" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpDecorate %4 LinkageAttributes "opaque_store" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %ulong_32 = OpConstant %ulong 32 +%float_3_14159274 = OpConstant %float 3.14159274 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant +%Opaque_opaque_t = OpTypeOpaque "opaque_t" +%_ptr_CrossWorkgroup_Opaque_opaque_t = OpTypePointer CrossWorkgroup %Opaque_opaque_t + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_Opaque_opaque_t + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_Opaque_opaque_t %ulong %float + %4 = OpFunction %void None %15 + %16 = OpFunctionParameter %_ptr_CrossWorkgroup_Opaque_opaque_t + %17 = OpFunctionParameter %ulong + %18 = OpFunctionParameter %float + OpFunctionEnd + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_Opaque_opaque_t + %19 = OpLabel + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpFunctionCall %void %4 %in %23 %float_3_14159274 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/phi_2.spvasm32 b/test_conformance/spirv_new/spirv_asm/phi_2.spvasm32 new file mode 100644 index 00000000..adcfac77 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/phi_2.spvasm32 @@ -0,0 +1,52 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 29 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "phi_2" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %14 = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %16 + %18 = OpLoad %uint %17 Aligned 4 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %16 + %20 = OpLoad %uint %19 Aligned 4 + %21 = OpSLessThan %bool %18 %20 + OpBranchConditional %21 %22 %23 + %22 = OpLabel + %24 = OpISub %uint %20 %18 + OpBranch %25 + %23 = OpLabel + %26 = OpISub %uint %18 %20 + OpBranch %25 + %25 = OpLabel + %27 = OpPhi %uint %24 %22 %26 %23 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %16 + OpStore %28 %27 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/phi_2.spvasm64 b/test_conformance/spirv_new/spirv_asm/phi_2.spvasm64 new file mode 100644 index 00000000..86ef7c37 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/phi_2.spvasm64 @@ -0,0 +1,57 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 33 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "phi_2" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %20 + %22 = OpLoad %uint %21 Aligned 4 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %20 + %24 = OpLoad %uint %23 Aligned 4 + %25 = OpSLessThan %bool %22 %24 + OpBranchConditional %25 %26 %27 + %26 = OpLabel + %28 = OpISub %uint %24 %22 + OpBranch %29 + %27 = OpLabel + %30 = OpISub %uint %22 %24 + OpBranch %29 + %29 = OpLabel + %31 = OpPhi %uint %28 %26 %30 %27 + %32 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %20 + OpStore %32 %31 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/phi_3.spvasm32 b/test_conformance/spirv_new/spirv_asm/phi_3.spvasm32 new file mode 100644 index 00000000..61ce6086 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/phi_3.spvasm32 @@ -0,0 +1,59 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 34 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "phi_3" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpSLessThan %bool %19 %21 + OpBranchConditional %22 %23 %24 + %23 = OpLabel + %25 = OpSLessThan %bool %19 %uint_0 + OpBranchConditional %25 %26 %27 + %26 = OpLabel + %28 = OpISub %uint %uint_0 %19 + OpBranch %29 + %27 = OpLabel + %30 = OpISub %uint %19 %uint_0 + OpBranch %29 + %24 = OpLabel + %31 = OpISub %uint %19 %21 + OpBranch %29 + %29 = OpLabel + %32 = OpPhi %uint %28 %26 %30 %27 %31 %24 + %33 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %17 + OpStore %33 %32 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/phi_3.spvasm64 b/test_conformance/spirv_new/spirv_asm/phi_3.spvasm64 new file mode 100644 index 00000000..4029dd6c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/phi_3.spvasm64 @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 38 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "phi_3" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 + %ulong_32 = OpConstant %ulong 32 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %21 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpSLessThan %bool %23 %25 + OpBranchConditional %26 %27 %28 + %27 = OpLabel + %29 = OpSLessThan %bool %23 %uint_0 + OpBranchConditional %29 %30 %31 + %30 = OpLabel + %32 = OpISub %uint %uint_0 %23 + OpBranch %33 + %31 = OpLabel + %34 = OpISub %uint %23 %uint_0 + OpBranch %33 + %28 = OpLabel + %35 = OpISub %uint %23 %25 + OpBranch %33 + %33 = OpLabel + %36 = OpPhi %uint %32 %30 %34 %31 %35 %28 + %37 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %21 + OpStore %37 %36 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/phi_4.spvasm32 b/test_conformance/spirv_new/spirv_asm/phi_4.spvasm32 new file mode 100644 index 00000000..3ed68086 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/phi_4.spvasm32 @@ -0,0 +1,65 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 38 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "phi_4" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %14 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %17 + %19 = OpLoad %uint %18 Aligned 4 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %17 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpSLessThan %bool %19 %21 + OpBranchConditional %22 %23 %24 + %23 = OpLabel + %25 = OpSLessThan %bool %19 %uint_0 + OpBranchConditional %25 %26 %27 + %26 = OpLabel + %28 = OpISub %uint %uint_0 %19 + OpBranch %29 + %27 = OpLabel + %30 = OpISub %uint %19 %uint_0 + OpBranch %29 + %24 = OpLabel + %31 = OpSLessThan %bool %21 %uint_0 + OpBranchConditional %31 %32 %33 + %32 = OpLabel + %34 = OpISub %uint %uint_0 %21 + OpBranch %29 + %33 = OpLabel + %35 = OpISub %uint %21 %uint_0 + OpBranch %29 + %29 = OpLabel + %36 = OpPhi %uint %28 %26 %30 %27 %34 %32 %35 %33 + %37 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %17 + OpStore %37 %36 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/phi_4.spvasm64 b/test_conformance/spirv_new/spirv_asm/phi_4.spvasm64 new file mode 100644 index 00000000..ab07cad3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/phi_4.spvasm64 @@ -0,0 +1,70 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 42 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "phi_4" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %21 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpSLessThan %bool %23 %25 + OpBranchConditional %26 %27 %28 + %27 = OpLabel + %29 = OpSLessThan %bool %23 %uint_0 + OpBranchConditional %29 %30 %31 + %30 = OpLabel + %32 = OpISub %uint %uint_0 %23 + OpBranch %33 + %31 = OpLabel + %34 = OpISub %uint %23 %uint_0 + OpBranch %33 + %28 = OpLabel + %35 = OpSLessThan %bool %25 %uint_0 + OpBranchConditional %35 %36 %37 + %36 = OpLabel + %38 = OpISub %uint %uint_0 %25 + OpBranch %33 + %37 = OpLabel + %39 = OpISub %uint %25 %uint_0 + OpBranch %33 + %33 = OpLabel + %40 = OpPhi %uint %32 %30 %34 %31 %38 %36 %39 %37 + %41 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %21 + OpStore %41 %40 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_if_dont_flatten.spvasm32 b/test_conformance/spirv_new/spirv_asm/select_if_dont_flatten.spvasm32 new file mode 100644 index 00000000..d3baef2a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_if_dont_flatten.spvasm32 @@ -0,0 +1,58 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "select_if_dont_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpVariable %_ptr_Function_uint Function + %18 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %uint %18 0 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpSLessThan %bool %21 %23 + OpSelectionMerge %25 DontFlatten + OpBranchConditional %24 %26 %27 + %26 = OpLabel + %28 = OpISub %uint %23 %21 + OpStore %17 %28 + OpBranch %25 + %27 = OpLabel + %29 = OpISub %uint %21 %23 + OpStore %17 %29 + OpBranch %25 + %25 = OpLabel + %30 = OpLoad %uint %17 + %31 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %31 %30 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_if_dont_flatten.spvasm64 b/test_conformance/spirv_new/spirv_asm/select_if_dont_flatten.spvasm64 new file mode 100644 index 00000000..5dd2d991 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_if_dont_flatten.spvasm64 @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 36 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "select_if_dont_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + OpStore %19 %uint_0 + %28 = OpSLessThan %bool %25 %27 + OpSelectionMerge %29 DontFlatten + OpBranchConditional %28 %30 %31 + %30 = OpLabel + %32 = OpISub %uint %27 %25 + OpStore %19 %32 + OpBranch %29 + %31 = OpLabel + %33 = OpISub %uint %25 %27 + OpStore %19 %33 + OpBranch %29 + %29 = OpLabel + %34 = OpLoad %uint %19 + %35 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %35 %34 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_if_flatten.spvasm32 b/test_conformance/spirv_new/spirv_asm/select_if_flatten.spvasm32 new file mode 100644 index 00000000..3e9fa20a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_if_flatten.spvasm32 @@ -0,0 +1,58 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "select_if_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpVariable %_ptr_Function_uint Function + %18 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %uint %18 0 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpSLessThan %bool %21 %23 + OpSelectionMerge %25 Flatten + OpBranchConditional %24 %26 %27 + %26 = OpLabel + %28 = OpISub %uint %23 %21 + OpStore %17 %28 + OpBranch %25 + %27 = OpLabel + %29 = OpISub %uint %21 %23 + OpStore %17 %29 + OpBranch %25 + %25 = OpLabel + %30 = OpLoad %uint %17 + %31 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %31 %30 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_if_flatten.spvasm64 b/test_conformance/spirv_new/spirv_asm/select_if_flatten.spvasm64 new file mode 100644 index 00000000..f246ece9 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_if_flatten.spvasm64 @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 36 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "select_if_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + OpStore %19 %uint_0 + %28 = OpSLessThan %bool %25 %27 + OpSelectionMerge %29 Flatten + OpBranchConditional %28 %30 %31 + %30 = OpLabel + %32 = OpISub %uint %27 %25 + OpStore %19 %32 + OpBranch %29 + %31 = OpLabel + %33 = OpISub %uint %25 %27 + OpStore %19 %33 + OpBranch %29 + %29 = OpLabel + %34 = OpLoad %uint %19 + %35 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %35 %34 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_if_none.spvasm32 b/test_conformance/spirv_new/spirv_asm/select_if_none.spvasm32 new file mode 100644 index 00000000..1aca937e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_if_none.spvasm32 @@ -0,0 +1,58 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "select_if_none" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %16 = OpLabel + %17 = OpVariable %_ptr_Function_uint Function + %18 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %uint %18 0 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %19 + %21 = OpLoad %uint %20 Aligned 4 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %19 + %23 = OpLoad %uint %22 Aligned 4 + %24 = OpSLessThan %bool %21 %23 + OpSelectionMerge %25 None + OpBranchConditional %24 %26 %27 + %26 = OpLabel + %28 = OpISub %uint %23 %21 + OpStore %17 %28 + OpBranch %25 + %27 = OpLabel + %29 = OpISub %uint %21 %23 + OpStore %17 %29 + OpBranch %25 + %25 = OpLabel + %30 = OpLoad %uint %17 + %31 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %19 + OpStore %31 %30 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_if_none.spvasm64 b/test_conformance/spirv_new/spirv_asm/select_if_none.spvasm64 new file mode 100644 index 00000000..47526e90 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_if_none.spvasm64 @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 36 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "select_if_none" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %17 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %17 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %18 = OpLabel + %19 = OpVariable %_ptr_Function_uint Function + %20 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %21 = OpCompositeExtract %ulong %20 0 + %22 = OpShiftLeftLogical %ulong %21 %ulong_32 + %23 = OpShiftRightArithmetic %ulong %22 %ulong_32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + OpStore %19 %uint_0 + %28 = OpSLessThan %bool %25 %27 + OpSelectionMerge %29 None + OpBranchConditional %28 %30 %31 + %30 = OpLabel + %32 = OpISub %uint %27 %25 + OpStore %19 %32 + OpBranch %29 + %31 = OpLabel + %33 = OpISub %uint %25 %27 + OpStore %19 %33 + OpBranch %29 + %29 = OpLabel + %34 = OpLoad %uint %19 + %35 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %35 %34 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_switch_dont_flatten.spvasm32 b/test_conformance/spirv_new/spirv_asm/select_switch_dont_flatten.spvasm32 new file mode 100644 index 00000000..b1b6e04f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_switch_dont_flatten.spvasm32 @@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 37 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "select_switch_dont_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %uint_4 = OpConstant %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %23 = OpCompositeExtract %uint %22 0 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + %28 = OpIAdd %uint %25 %27 + %29 = OpUMod %uint %28 %uint_4 + OpSelectionMerge %30 DontFlatten + OpSwitch %29 %31 1 %32 2 %33 3 %34 + %32 = OpLabel + OpStore %21 %uint_1 + OpBranch %30 + %33 = OpLabel + OpStore %21 %uint_2 + OpBranch %30 + %34 = OpLabel + OpStore %21 %uint_3 + OpBranch %30 + %31 = OpLabel + OpStore %21 %uint_0 + OpBranch %30 + %30 = OpLabel + %35 = OpLoad %uint %21 + %36 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %36 %35 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_switch_dont_flatten.spvasm64 b/test_conformance/spirv_new/spirv_asm/select_switch_dont_flatten.spvasm64 new file mode 100644 index 00000000..47b97b9a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_switch_dont_flatten.spvasm64 @@ -0,0 +1,73 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "select_switch_dont_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %uint_4 = OpConstant %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %21 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %21 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %22 = OpLabel + %23 = OpVariable %_ptr_Function_uint Function + %24 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %25 = OpCompositeExtract %ulong %24 0 + %26 = OpShiftLeftLogical %ulong %25 %ulong_32 + %27 = OpShiftRightArithmetic %ulong %26 %ulong_32 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %27 + %29 = OpLoad %uint %28 Aligned 4 + %30 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %27 + %31 = OpLoad %uint %30 Aligned 4 + OpStore %23 %uint_0 + %32 = OpIAdd %uint %29 %31 + %33 = OpUMod %uint %32 %uint_4 + OpSelectionMerge %34 DontFlatten + OpSwitch %33 %35 1 %36 2 %37 3 %38 + %36 = OpLabel + OpStore %23 %uint_1 + OpBranch %34 + %37 = OpLabel + OpStore %23 %uint_2 + OpBranch %34 + %38 = OpLabel + OpStore %23 %uint_3 + OpBranch %34 + %35 = OpLabel + OpStore %23 %uint_0 + OpBranch %34 + %34 = OpLabel + %39 = OpLoad %uint %23 + %40 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %27 + OpStore %40 %39 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_switch_flatten.spvasm32 b/test_conformance/spirv_new/spirv_asm/select_switch_flatten.spvasm32 new file mode 100644 index 00000000..36841628 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_switch_flatten.spvasm32 @@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 37 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "select_switch_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %uint_4 = OpConstant %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %23 = OpCompositeExtract %uint %22 0 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + %28 = OpIAdd %uint %25 %27 + %29 = OpUMod %uint %28 %uint_4 + OpSelectionMerge %30 Flatten + OpSwitch %29 %31 1 %32 2 %33 3 %34 + %32 = OpLabel + OpStore %21 %uint_1 + OpBranch %30 + %33 = OpLabel + OpStore %21 %uint_2 + OpBranch %30 + %34 = OpLabel + OpStore %21 %uint_3 + OpBranch %30 + %31 = OpLabel + OpStore %21 %uint_0 + OpBranch %30 + %30 = OpLabel + %35 = OpLoad %uint %21 + %36 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %36 %35 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_switch_flatten.spvasm64 b/test_conformance/spirv_new/spirv_asm/select_switch_flatten.spvasm64 new file mode 100644 index 00000000..1cbfc284 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_switch_flatten.spvasm64 @@ -0,0 +1,73 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "select_switch_flatten" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %uint_4 = OpConstant %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %21 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %21 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %22 = OpLabel + %23 = OpVariable %_ptr_Function_uint Function + %24 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %25 = OpCompositeExtract %ulong %24 0 + %26 = OpShiftLeftLogical %ulong %25 %ulong_32 + %27 = OpShiftRightArithmetic %ulong %26 %ulong_32 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %27 + %29 = OpLoad %uint %28 Aligned 4 + %30 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %27 + %31 = OpLoad %uint %30 Aligned 4 + OpStore %23 %uint_0 + %32 = OpIAdd %uint %29 %31 + %33 = OpUMod %uint %32 %uint_4 + OpSelectionMerge %34 Flatten + OpSwitch %33 %35 1 %36 2 %37 3 %38 + %36 = OpLabel + OpStore %23 %uint_1 + OpBranch %34 + %37 = OpLabel + OpStore %23 %uint_2 + OpBranch %34 + %38 = OpLabel + OpStore %23 %uint_3 + OpBranch %34 + %35 = OpLabel + OpStore %23 %uint_0 + OpBranch %34 + %34 = OpLabel + %39 = OpLoad %uint %23 + %40 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %27 + OpStore %40 %39 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_switch_none.spvasm32 b/test_conformance/spirv_new/spirv_asm/select_switch_none.spvasm32 new file mode 100644 index 00000000..899d64ee --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_switch_none.spvasm32 @@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 37 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "select_switch_none" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %bool = OpTypeBool + %void = OpTypeVoid + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %uint_4 = OpConstant %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %19 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %19 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %20 = OpLabel + %21 = OpVariable %_ptr_Function_uint Function + %22 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %23 = OpCompositeExtract %uint %22 0 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %23 + %25 = OpLoad %uint %24 Aligned 4 + %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %23 + %27 = OpLoad %uint %26 Aligned 4 + %28 = OpIAdd %uint %25 %27 + %29 = OpUMod %uint %28 %uint_4 + OpSelectionMerge %30 None + OpSwitch %29 %31 1 %32 2 %33 3 %34 + %32 = OpLabel + OpStore %21 %uint_1 + OpBranch %30 + %33 = OpLabel + OpStore %21 %uint_2 + OpBranch %30 + %34 = OpLabel + OpStore %21 %uint_3 + OpBranch %30 + %31 = OpLabel + OpStore %21 %uint_0 + OpBranch %30 + %30 = OpLabel + %35 = OpLoad %uint %21 + %36 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %23 + OpStore %36 %35 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/select_switch_none.spvasm64 b/test_conformance/spirv_new/spirv_asm/select_switch_none.spvasm64 new file mode 100644 index 00000000..c9055954 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/select_switch_none.spvasm64 @@ -0,0 +1,73 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 41 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "select_switch_none" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %bool = OpTypeBool + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ulong_32 = OpConstant %ulong 32 + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 + %uint_2 = OpConstant %uint 2 + %uint_3 = OpConstant %uint 3 + %uint_4 = OpConstant %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_Function_uint = OpTypePointer Function %uint + %21 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %21 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %22 = OpLabel + %23 = OpVariable %_ptr_Function_uint Function + %24 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %25 = OpCompositeExtract %ulong %24 0 + %26 = OpShiftLeftLogical %ulong %25 %ulong_32 + %27 = OpShiftRightArithmetic %ulong %26 %ulong_32 + %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %27 + %29 = OpLoad %uint %28 Aligned 4 + %30 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %27 + %31 = OpLoad %uint %30 Aligned 4 + OpStore %23 %uint_0 + %32 = OpIAdd %uint %29 %31 + %33 = OpUMod %uint %32 %uint_4 + OpSelectionMerge %34 None + OpSwitch %33 %35 1 %36 2 %37 3 %38 + %36 = OpLabel + OpStore %23 %uint_1 + OpBranch %34 + %37 = OpLabel + OpStore %23 %uint_2 + OpBranch %34 + %38 = OpLabel + OpStore %23 %uint_3 + OpBranch %34 + %35 = OpLabel + OpStore %23 %uint_0 + OpBranch %34 + %34 = OpLabel + %39 = OpLoad %uint %23 + %40 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %27 + OpStore %40 %39 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_char_simple.spvasm32 new file mode 100644 index 00000000..fb4c78b1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_char_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %11 = OpLabel + %12 = OpUndef %uchar + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_char_simple.spvasm64 new file mode 100644 index 00000000..65d657ec --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_char_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %12 = OpLabel + %13 = OpUndef %uchar + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_double_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_double_simple.spvasm32 new file mode 100644 index 00000000..ed4a47d1 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_double_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_double_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %11 = OpLabel + %12 = OpUndef %double + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_double_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_double_simple.spvasm64 new file mode 100644 index 00000000..6ae714de --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_double_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_double_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_double + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %12 = OpLabel + %13 = OpUndef %double + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_false_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_false_simple.spvasm32 new file mode 100644 index 00000000..d80afe18 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_false_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_false_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpUndef %bool + %15 = OpSelect %uint %14 %uint_1 %uint_0 + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_false_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_false_simple.spvasm64 new file mode 100644 index 00000000..99fc3f65 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_false_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_false_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpUndef %bool + %17 = OpSelect %uint %16 %uint_1 %uint_0 + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %21 + OpStore %22 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_float_simple.spvasm32 new file mode 100644 index 00000000..5b20017d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_float_simple.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %11 = OpLabel + %12 = OpUndef %float + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_float_simple.spvasm64 new file mode 100644 index 00000000..ec56354b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_float_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %12 = OpLabel + %13 = OpUndef %float + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_half_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_half_simple.spvasm32 new file mode 100644 index 00000000..acebc88f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_half_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_half_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %12 = OpLabel + %13 = OpUndef %half + %14 = OpFConvert %float %13 + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %16 + OpStore %17 %14 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_half_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_half_simple.spvasm64 new file mode 100644 index 00000000..5f7ffd39 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_half_simple.spvasm64 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_half_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %float = OpTypeFloat 32 + %half = OpTypeFloat 16 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_float + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %13 = OpLabel + %14 = OpUndef %half + %15 = OpFConvert %float %14 + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %19 + OpStore %20 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_int3_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_int3_simple.spvasm32 new file mode 100644 index 00000000..6247618c --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_int3_simple.spvasm32 @@ -0,0 +1,32 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 15 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_int3_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_v3uint = OpTypePointer CrossWorkgroup %v3uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_v3uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v3uint + %10 = OpLabel + %11 = OpUndef %v3uint + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v3uint %in %13 + OpStore %14 %11 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_int3_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_int3_simple.spvasm64 new file mode 100644 index 00000000..73b543df --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_int3_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_int3_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_CrossWorkgroup_v3uint = OpTypePointer CrossWorkgroup %v3uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v3uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v3uint + %13 = OpLabel + %14 = OpUndef %v3uint + %15 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %ulong %15 0 + %17 = OpShiftLeftLogical %ulong %16 %ulong_32 + %18 = OpShiftRightArithmetic %ulong %17 %ulong_32 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v3uint %in %18 + OpStore %19 %14 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_int4_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_int4_simple.spvasm32 new file mode 100644 index 00000000..75f83b51 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_int4_simple.spvasm32 @@ -0,0 +1,33 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_int4_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %11 = OpLabel + %12 = OpUndef %v4uint + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %14 + OpStore %15 %12 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_int4_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_int4_simple.spvasm64 new file mode 100644 index 00000000..6d0f9403 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_int4_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_int4_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %13 = OpLabel + %14 = OpUndef %v4uint + %15 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %ulong %15 0 + %17 = OpShiftLeftLogical %ulong %16 %ulong_32 + %18 = OpShiftRightArithmetic %ulong %17 %ulong_32 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %18 + OpStore %19 %14 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_int_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_int_simple.spvasm32 new file mode 100644 index 00000000..f9382c39 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_int_simple.spvasm32 @@ -0,0 +1,32 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 15 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_int_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpLabel + %11 = OpUndef %uint + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + OpStore %14 %11 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_int_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_int_simple.spvasm64 new file mode 100644 index 00000000..7d6f8ba4 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_int_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_int_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %12 = OpLabel + %13 = OpUndef %uint + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_long_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_long_simple.spvasm32 new file mode 100644 index 00000000..b05e3228 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_long_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_long_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpUndef %ulong + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_long_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_long_simple.spvasm64 new file mode 100644 index 00000000..e67626df --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_long_simple.spvasm64 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_long_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpUndef %ulong + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %16 + OpStore %17 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_short_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_short_simple.spvasm32 new file mode 100644 index 00000000..c4fb0916 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_short_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_short_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %11 = OpLabel + %12 = OpUndef %ushort + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_short_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_short_simple.spvasm64 new file mode 100644 index 00000000..9078c851 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_short_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_short_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpUndef %ushort + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_struct_int_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_struct_int_char_simple.spvasm32 new file mode 100644 index 00000000..a9527fa8 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_struct_int_char_simple.spvasm32 @@ -0,0 +1,35 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_struct_int_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %_struct_9 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_9 = OpTypePointer CrossWorkgroup %_struct_9 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_9 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_9 + %12 = OpLabel + %13 = OpUndef %_struct_9 + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_9 %in %15 + OpStore %16 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_struct_int_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_struct_int_char_simple.spvasm64 new file mode 100644 index 00000000..19185c38 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_struct_int_char_simple.spvasm64 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_struct_int_char_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar +%_ptr_CrossWorkgroup__struct_10 = OpTypePointer CrossWorkgroup %_struct_10 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_10 + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_10 + %14 = OpLabel + %15 = OpUndef %_struct_10 + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_10 %in %19 + OpStore %20 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_struct_int_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_struct_int_float_simple.spvasm32 new file mode 100644 index 00000000..69750ca9 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_struct_int_float_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_struct_int_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %_struct_9 = OpTypeStruct %uint %float +%_ptr_CrossWorkgroup__struct_9 = OpTypePointer CrossWorkgroup %_struct_9 + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_9 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_9 + %12 = OpLabel + %13 = OpUndef %_struct_9 + %14 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %uint %14 0 + %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_9 %in %15 + OpStore %16 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_struct_int_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_struct_int_float_simple.spvasm64 new file mode 100644 index 00000000..b748de84 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_struct_int_float_simple.spvasm64 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_struct_int_float_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %float = OpTypeFloat 32 + %_struct_10 = OpTypeStruct %uint %float +%_ptr_CrossWorkgroup__struct_10 = OpTypePointer CrossWorkgroup %_struct_10 + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_10 + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_10 + %14 = OpLabel + %15 = OpUndef %_struct_10 + %16 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %ulong %16 0 + %18 = OpShiftLeftLogical %ulong %17 %ulong_32 + %19 = OpShiftRightArithmetic %ulong %18 %ulong_32 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_10 %in %19 + OpStore %20 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_struct_struct_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_struct_struct_simple.spvasm32 new file mode 100644 index 00000000..e2812a6d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_struct_struct_simple.spvasm32 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Kernel + OpCapability Linkage + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_struct_struct_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_10 = OpTypeStruct %uint %uchar + %_struct_11 = OpTypeStruct %v2uint %_struct_10 +%_ptr_CrossWorkgroup__struct_11 = OpTypePointer CrossWorkgroup %_struct_11 + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_11 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_11 + %14 = OpLabel + %15 = OpUndef %_struct_11 + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_11 %in %17 + OpStore %18 %15 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_struct_struct_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_struct_struct_simple.spvasm64 new file mode 100644 index 00000000..35d05d0d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_struct_struct_simple.spvasm64 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_struct_struct_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %v2uint = OpTypeVector %uint 2 + %uchar = OpTypeInt 8 0 + %_struct_11 = OpTypeStruct %uint %uchar + %_struct_12 = OpTypeStruct %v2uint %_struct_11 +%_ptr_CrossWorkgroup__struct_12 = OpTypePointer CrossWorkgroup %_struct_12 + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup__struct_12 + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup__struct_12 + %16 = OpLabel + %17 = OpUndef %_struct_12 + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup__struct_12 %in %21 + OpStore %22 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_true_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_true_simple.spvasm32 new file mode 100644 index 00000000..5b356cd3 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_true_simple.spvasm32 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_true_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpUndef %bool + %15 = OpSelect %uint %14 %uint_1 %uint_0 + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %15 Aligned 4 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_true_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_true_simple.spvasm64 new file mode 100644 index 00000000..9bf35d78 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_true_simple.spvasm64 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_true_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %bool = OpTypeBool +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %11 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %11 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpLabel + %16 = OpUndef %bool + %17 = OpSelect %uint %16 %uint_1 %uint_0 + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %21 + OpStore %22 %17 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_uchar_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_uchar_simple.spvasm32 new file mode 100644 index 00000000..868ccfc6 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_uchar_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_uchar_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %11 = OpLabel + %12 = OpUndef %uchar + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_uchar_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_uchar_simple.spvasm64 new file mode 100644 index 00000000..4060237a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_uchar_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_uchar_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %12 = OpLabel + %13 = OpUndef %uchar + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_uint_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_uint_simple.spvasm32 new file mode 100644 index 00000000..e281b55d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_uint_simple.spvasm32 @@ -0,0 +1,32 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 15 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_uint_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpLabel + %11 = OpUndef %uint + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + OpStore %14 %11 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_uint_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_uint_simple.spvasm64 new file mode 100644 index 00000000..11934289 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_uint_simple.spvasm64 @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_uint_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %12 = OpLabel + %13 = OpUndef %uint + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_ulong_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_ulong_simple.spvasm32 new file mode 100644 index 00000000..8e79a652 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_ulong_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_ulong_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpUndef %ulong + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_ulong_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_ulong_simple.spvasm64 new file mode 100644 index 00000000..bc595e4b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_ulong_simple.spvasm64 @@ -0,0 +1,36 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 18 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_ulong_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %11 = OpLabel + %12 = OpUndef %ulong + %13 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %ulong %13 0 + %15 = OpShiftLeftLogical %ulong %14 %ulong_32 + %16 = OpShiftRightArithmetic %ulong %15 %ulong_32 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %16 + OpStore %17 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_ushort_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/undef_ushort_simple.spvasm32 new file mode 100644 index 00000000..5425638a --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_ushort_simple.spvasm32 @@ -0,0 +1,34 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 16 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "undef_ushort_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %11 = OpLabel + %12 = OpUndef %ushort + %13 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %14 = OpCompositeExtract %uint %13 0 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %14 + OpStore %15 %12 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/undef_ushort_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/undef_ushort_simple.spvasm64 new file mode 100644 index 00000000..0dff1ddb --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/undef_ushort_simple.spvasm64 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "undef_ushort_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %void = OpTypeVoid + %ushort = OpTypeInt 16 0 +%_ptr_CrossWorkgroup_ushort = OpTypePointer CrossWorkgroup %ushort + %10 = OpTypeFunction %void %_ptr_CrossWorkgroup_ushort + %ulong_32 = OpConstant %ulong 32 +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %10 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ushort + %12 = OpLabel + %13 = OpUndef %ushort + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ushort %in %17 + OpStore %18 %13 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/unreachable_simple.spvasm32 b/test_conformance/spirv_new/spirv_asm/unreachable_simple.spvasm32 new file mode 100644 index 00000000..1c40b60b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/unreachable_simple.spvasm32 @@ -0,0 +1,38 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 19 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "unreachable_simple" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %9 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %10 = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %11 = OpLabel + %12 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %13 = OpCompositeExtract %uint %12 0 + %14 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %13 + %15 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %10 %13 + %16 = OpLoad %uint %14 + OpBranch %17 + %18 = OpLabel + OpUnreachable + %17 = OpLabel + OpStore %15 %16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/unreachable_simple.spvasm64 b/test_conformance/spirv_new/spirv_asm/unreachable_simple.spvasm64 new file mode 100644 index 00000000..eefd8163 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/unreachable_simple.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "unreachable_simple" + OpName %in "in" + OpName %out "out" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %void = OpTypeVoid + %uint = OpTypeInt 32 0 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpLabel + %14 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %15 = OpCompositeExtract %ulong %14 0 + %16 = OpShiftLeftLogical %ulong %15 %ulong_32 + %17 = OpShiftRightArithmetic %ulong %16 %ulong_32 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %17 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %17 + OpBranch %20 + %21 = OpLabel + OpUnreachable + %20 = OpLabel + %22 = OpLoad %uint %18 + OpStore %19 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_char16_extract.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_char16_extract.spvasm32 new file mode 100644 index 00000000..9ea1871f --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_char16_extract.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Vector16 + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_char16_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %v16uchar = OpTypeVector %uchar 16 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar +%_ptr_CrossWorkgroup_v16uchar = OpTypePointer CrossWorkgroup %v16uchar + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_v16uchar %_ptr_CrossWorkgroup_uchar %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v16uchar + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v16uchar %in %17 + %19 = OpLoad %v16uchar %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %4 %17 + %21 = OpVectorExtractDynamic %uchar %19 %14 + OpStore %20 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_char16_extract.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_char16_extract.spvasm64 new file mode 100644 index 00000000..ce4d72cc --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_char16_extract.spvasm64 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpCapability Vector16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_char16_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %v16uchar = OpTypeVector %uchar 16 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar +%_ptr_CrossWorkgroup_v16uchar = OpTypePointer CrossWorkgroup %v16uchar + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_v16uchar %_ptr_CrossWorkgroup_uchar %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v16uchar + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v16uchar %in %21 + %23 = OpLoad %v16uchar %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %4 %21 + %25 = OpVectorExtractDynamic %uchar %23 %16 + OpStore %24 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_char16_insert.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_char16_insert.spvasm32 new file mode 100644 index 00000000..0ccbbf93 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_char16_insert.spvasm32 @@ -0,0 +1,43 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Vector16 + OpCapability Int8 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_char16_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %v16uchar = OpTypeVector %uchar 16 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar +%_ptr_CrossWorkgroup_v16uchar = OpTypePointer CrossWorkgroup %v16uchar + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_v16uchar %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v16uchar + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %17 + %19 = OpLoad %uchar %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v16uchar %4 %17 + %21 = OpLoad %v16uchar %20 + %22 = OpVectorInsertDynamic %v16uchar %21 %19 %14 + OpStore %20 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_char16_insert.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_char16_insert.spvasm64 new file mode 100644 index 00000000..dbb7cf57 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_char16_insert.spvasm64 @@ -0,0 +1,48 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Int8 + OpCapability Vector16 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_char16_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %uchar = OpTypeInt 8 0 + %v16uchar = OpTypeVector %uchar 16 +%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar +%_ptr_CrossWorkgroup_v16uchar = OpTypePointer CrossWorkgroup %v16uchar + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_v16uchar %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uchar + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v16uchar + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %in %21 + %23 = OpLoad %uchar %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v16uchar %4 %21 + %25 = OpLoad %v16uchar %24 + %26 = OpVectorInsertDynamic %v16uchar %25 %23 %16 + OpStore %24 %26 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_double2_extract.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_double2_extract.spvasm32 new file mode 100644 index 00000000..559337cf --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_double2_extract.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_double2_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_double %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_double + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %in %17 + %19 = OpLoad %v2double %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %4 %17 + %21 = OpVectorExtractDynamic %double %19 %14 + OpStore %20 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_double2_extract.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_double2_extract.spvasm64 new file mode 100644 index 00000000..ccf2fb43 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_double2_extract.spvasm64 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_double2_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2double %_ptr_CrossWorkgroup_double %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_double + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %in %21 + %23 = OpLoad %v2double %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %4 %21 + %25 = OpVectorExtractDynamic %double %23 %16 + OpStore %24 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_double2_insert.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_double2_insert.spvasm32 new file mode 100644 index 00000000..1d4125a7 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_double2_insert.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_double2_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_v2double %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %17 + %19 = OpLoad %double %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %4 %17 + %21 = OpLoad %v2double %20 + %22 = OpVectorInsertDynamic %v2double %21 %19 %14 + OpStore %20 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_double2_insert.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_double2_insert.spvasm64 new file mode 100644 index 00000000..48abb07e --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_double2_insert.spvasm64 @@ -0,0 +1,47 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_double2_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %double = OpTypeFloat 64 + %v2double = OpTypeVector %double 2 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double +%_ptr_CrossWorkgroup_v2double = OpTypePointer CrossWorkgroup %v2double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_double %_ptr_CrossWorkgroup_v2double %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_double + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v2double + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %in %21 + %23 = OpLoad %double %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2double %4 %21 + %25 = OpLoad %v2double %24 + %26 = OpVectorInsertDynamic %v2double %25 %23 %16 + OpStore %24 %26 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_float4_extract.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_float4_extract.spvasm32 new file mode 100644 index 00000000..c3a1d9db --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_float4_extract.spvasm32 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_float4_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_float %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_float + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %in %17 + %19 = OpLoad %v4float %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %4 %17 + %21 = OpVectorExtractDynamic %float %19 %14 + OpStore %20 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_float4_extract.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_float4_extract.spvasm64 new file mode 100644 index 00000000..e7df3b0d --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_float4_extract.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_float4_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_float %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %in %21 + %23 = OpLoad %v4float %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %4 %21 + %25 = OpVectorExtractDynamic %float %23 %16 + OpStore %24 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_float4_insert.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_float4_insert.spvasm32 new file mode 100644 index 00000000..7cc0d216 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_float4_insert.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_float4_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_v4float %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %17 + %19 = OpLoad %float %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %4 %17 + %21 = OpLoad %v4float %20 + %22 = OpVectorInsertDynamic %v4float %21 %19 %14 + OpStore %20 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_float4_insert.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_float4_insert.spvasm64 new file mode 100644 index 00000000..24305d22 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_float4_insert.spvasm64 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 27 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_float4_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_float %_ptr_CrossWorkgroup_v4float %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %15 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_float + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %16 = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %in %21 + %23 = OpLoad %float %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %4 %21 + %25 = OpLoad %v4float %24 + %26 = OpVectorInsertDynamic %v4float %25 %23 %16 + OpStore %24 %26 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_int4_extract.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_int4_extract.spvasm32 new file mode 100644 index 00000000..441623fd --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_int4_extract.spvasm32 @@ -0,0 +1,39 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 21 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_int4_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %_ptr_CrossWorkgroup_uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %13 = OpFunctionParameter %uint + %14 = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %16 + %18 = OpLoad %v4uint %17 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %4 %16 + %20 = OpVectorExtractDynamic %uint %18 %13 + OpStore %19 %20 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_int4_extract.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_int4_extract.spvasm64 new file mode 100644 index 00000000..5298a510 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_int4_extract.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_int4_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4uint %_ptr_CrossWorkgroup_uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %15 = OpFunctionParameter %uint + %16 = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %in %20 + %22 = OpLoad %v4uint %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %4 %20 + %24 = OpVectorExtractDynamic %uint %22 %15 + OpStore %23 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_int4_insert.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_int4_insert.spvasm32 new file mode 100644 index 00000000..e0ae874b --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_int4_insert.spvasm32 @@ -0,0 +1,40 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_int4_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %12 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_v4uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %12 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %13 = OpFunctionParameter %uint + %14 = OpLabel + %15 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %16 = OpCompositeExtract %uint %15 0 + %17 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %16 + %18 = OpLoad %uint %17 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %4 %16 + %20 = OpLoad %v4uint %19 + %21 = OpVectorInsertDynamic %v4uint %20 %18 %13 + OpStore %19 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_int4_insert.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_int4_insert.spvasm64 new file mode 100644 index 00000000..426ace17 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_int4_insert.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_int4_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %v4uint = OpTypeVector %uint 4 +%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint +%_ptr_CrossWorkgroup_v4uint = OpTypePointer CrossWorkgroup %v4uint + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_v4uint %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_uint + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v4uint + %15 = OpFunctionParameter %uint + %16 = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %in %20 + %22 = OpLoad %uint %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4uint %4 %20 + %24 = OpLoad %v4uint %23 + %25 = OpVectorInsertDynamic %v4uint %24 %22 %15 + OpStore %23 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_long2_extract.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_long2_extract.spvasm32 new file mode 100644 index 00000000..22925a00 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_long2_extract.spvasm32 @@ -0,0 +1,41 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 22 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_long2_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 + %v2ulong = OpTypeVector %ulong 2 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong +%_ptr_CrossWorkgroup_v2ulong = OpTypePointer CrossWorkgroup %v2ulong + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2ulong %_ptr_CrossWorkgroup_ulong %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v2ulong + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2ulong %in %17 + %19 = OpLoad %v2ulong %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %4 %17 + %21 = OpVectorExtractDynamic %ulong %19 %14 + OpStore %20 %21 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_long2_extract.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_long2_extract.spvasm64 new file mode 100644 index 00000000..5ebac410 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_long2_extract.spvasm64 @@ -0,0 +1,44 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_long2_extract" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %v2ulong = OpTypeVector %ulong 2 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong +%_ptr_CrossWorkgroup_v2ulong = OpTypePointer CrossWorkgroup %v2ulong + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_v2ulong %_ptr_CrossWorkgroup_ulong %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_v2ulong + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %15 = OpFunctionParameter %uint + %16 = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2ulong %in %20 + %22 = OpLoad %v2ulong %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %4 %20 + %24 = OpVectorExtractDynamic %ulong %22 %15 + OpStore %23 %24 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_long2_insert.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_long2_insert.spvasm32 new file mode 100644 index 00000000..d9cafaba --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_long2_insert.spvasm32 @@ -0,0 +1,42 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 23 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_long2_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %ulong = OpTypeInt 64 0 + %v2ulong = OpTypeVector %ulong 2 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong +%_ptr_CrossWorkgroup_v2ulong = OpTypePointer CrossWorkgroup %v2ulong + %13 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_v2ulong %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %13 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v2ulong + %14 = OpFunctionParameter %uint + %15 = OpLabel + %16 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %17 = OpCompositeExtract %uint %16 0 + %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %17 + %19 = OpLoad %ulong %18 + %20 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2ulong %4 %17 + %21 = OpLoad %v2ulong %20 + %22 = OpVectorInsertDynamic %v2ulong %21 %19 %14 + OpStore %20 %22 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_long2_insert.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_long2_insert.spvasm64 new file mode 100644 index 00000000..f37e03d2 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_long2_insert.spvasm64 @@ -0,0 +1,45 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 26 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_long2_insert" + OpName %in "in" + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %in FuncParamAttr NoCapture + OpDecorate %4 FuncParamAttr NoCapture + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %uint = OpTypeInt 32 0 + %void = OpTypeVoid + %v2ulong = OpTypeVector %ulong 2 +%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong +%_ptr_CrossWorkgroup_v2ulong = OpTypePointer CrossWorkgroup %v2ulong + %14 = OpTypeFunction %void %_ptr_CrossWorkgroup_ulong %_ptr_CrossWorkgroup_v2ulong %uint +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %14 + %in = OpFunctionParameter %_ptr_CrossWorkgroup_ulong + %4 = OpFunctionParameter %_ptr_CrossWorkgroup_v2ulong + %15 = OpFunctionParameter %uint + %16 = OpLabel + %17 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %ulong %17 0 + %19 = OpShiftLeftLogical %ulong %18 %ulong_32 + %20 = OpShiftRightArithmetic %ulong %19 %ulong_32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_ulong %in %20 + %22 = OpLoad %ulong %21 + %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v2ulong %4 %20 + %24 = OpLoad %v2ulong %23 + %25 = OpVectorInsertDynamic %v2ulong %24 %22 %15 + OpStore %23 %25 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_times_scalar_double.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_double.spvasm32 new file mode 100644 index 00000000..24d5b2a7 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_double.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Float64 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_times_scalar" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %v4double = OpTypeVector %double 4 +%_ptr_CrossWorkgroup_v4double = OpTypePointer CrossWorkgroup %v4double + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4double %_ptr_CrossWorkgroup_v4double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4double %lhs %18 + %20 = OpLoad %v4double %19 Aligned 32 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %18 + %22 = OpLoad %double %21 Aligned 8 + %23 = OpVectorTimesScalar %v4double %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4double %res %18 + OpStore %24 %23 Aligned 32 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_times_scalar_double.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_double.spvasm64 new file mode 100644 index 00000000..43e64878 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_double.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int64 + OpCapability Float64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_times_scalar" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %void = OpTypeVoid + %double = OpTypeFloat 64 +%_ptr_CrossWorkgroup_double = OpTypePointer CrossWorkgroup %double + %v4double = OpTypeVector %double 4 +%_ptr_CrossWorkgroup_v4double = OpTypePointer CrossWorkgroup %v4double + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4double %_ptr_CrossWorkgroup_v4double %_ptr_CrossWorkgroup_double +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4double + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4double + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_double + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4double %lhs %21 + %23 = OpLoad %v4double %22 Aligned 32 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_double %rhs %21 + %25 = OpLoad %double %24 Aligned 8 + %26 = OpVectorTimesScalar %v4double %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4double %res %21 + OpStore %27 %26 Aligned 32 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_times_scalar_float.spvasm32 b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_float.spvasm32 new file mode 100644 index 00000000..7e449367 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_float.spvasm32 @@ -0,0 +1,46 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 25 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpMemoryModel Physical32 OpenCL + OpEntryPoint Kernel %1 "vector_times_scalar" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %15 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3uint UniformConstant + %1 = OpFunction %void None %15 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %16 = OpLabel + %17 = OpLoad %v3uint %gl_GlobalInvocationID Aligned 0 + %18 = OpCompositeExtract %uint %17 0 + %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %18 + %20 = OpLoad %v4float %19 Aligned 16 + %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %18 + %22 = OpLoad %float %21 Aligned 4 + %23 = OpVectorTimesScalar %v4float %20 %22 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %18 + OpStore %24 %23 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_asm/vector_times_scalar_float.spvasm64 b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_float.spvasm64 new file mode 100644 index 00000000..0fbd0386 --- /dev/null +++ b/test_conformance/spirv_new/spirv_asm/vector_times_scalar_float.spvasm64 @@ -0,0 +1,50 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 28 +; Schema: 0 + OpCapability Addresses + OpCapability Linkage + OpCapability Kernel + OpCapability Int16 + OpCapability Int64 + OpMemoryModel Physical64 OpenCL + OpEntryPoint Kernel %1 "vector_times_scalar" + OpName %res "res" + OpName %lhs "lhs" + OpName %rhs "rhs" + OpDecorate %5 FuncParamAttr NoCapture + %5 = OpDecorationGroup + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_GlobalInvocationID Constant + OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import + OpGroupDecorate %5 %res %lhs %rhs + %ulong = OpTypeInt 64 0 + %v3ulong = OpTypeVector %ulong 3 +%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong + %ulong_32 = OpConstant %ulong 32 + %void = OpTypeVoid + %float = OpTypeFloat 32 +%_ptr_CrossWorkgroup_float = OpTypePointer CrossWorkgroup %float + %v4float = OpTypeVector %float 4 +%_ptr_CrossWorkgroup_v4float = OpTypePointer CrossWorkgroup %v4float + %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_v4float %_ptr_CrossWorkgroup_float +%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant + %1 = OpFunction %void None %16 + %res = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_v4float + %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_float + %17 = OpLabel + %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0 + %19 = OpCompositeExtract %ulong %18 0 + %20 = OpShiftLeftLogical %ulong %19 %ulong_32 + %21 = OpShiftRightArithmetic %ulong %20 %ulong_32 + %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %lhs %21 + %23 = OpLoad %v4float %22 Aligned 16 + %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_float %rhs %21 + %25 = OpLoad %float %24 Aligned 4 + %26 = OpVectorTimesScalar %v4float %23 %25 + %27 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_v4float %res %21 + OpStore %27 %26 Aligned 16 + OpReturn + OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_bin/atomic_dec_global.spv32 b/test_conformance/spirv_new/spirv_bin/atomic_dec_global.spv32 index 22a286cc..9f07a611 100644 Binary files a/test_conformance/spirv_new/spirv_bin/atomic_dec_global.spv32 and b/test_conformance/spirv_new/spirv_bin/atomic_dec_global.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/atomic_inc_global.spv32 b/test_conformance/spirv_new/spirv_bin/atomic_inc_global.spv32 index 7680b2b9..056b4575 100644 Binary files a/test_conformance/spirv_new/spirv_bin/atomic_inc_global.spv32 and b/test_conformance/spirv_new/spirv_bin/atomic_inc_global.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/branch_conditional.spv32 b/test_conformance/spirv_new/spirv_bin/branch_conditional.spv32 index 5b16aca3..2f731ac8 100644 Binary files a/test_conformance/spirv_new/spirv_bin/branch_conditional.spv32 and b/test_conformance/spirv_new/spirv_bin/branch_conditional.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/branch_conditional.spv64 b/test_conformance/spirv_new/spirv_bin/branch_conditional.spv64 index 806b1bb4..cf1b8754 100644 Binary files a/test_conformance/spirv_new/spirv_bin/branch_conditional.spv64 and b/test_conformance/spirv_new/spirv_bin/branch_conditional.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv32 b/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv32 index 739d60dc..a0eb5111 100644 Binary files a/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv32 and b/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv64 b/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv64 index 2ca9127c..bb1520f1 100644 Binary files a/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv64 and b/test_conformance/spirv_new/spirv_bin/branch_conditional_weighted.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/branch_simple.spv32 b/test_conformance/spirv_new/spirv_bin/branch_simple.spv32 index 4747a244..c3c7103b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/branch_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/branch_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/composite_construct_int4.spv32 b/test_conformance/spirv_new/spirv_bin/composite_construct_int4.spv32 index ac668439..a17daa5d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/composite_construct_int4.spv32 and b/test_conformance/spirv_new/spirv_bin/composite_construct_int4.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/composite_construct_struct.spv32 b/test_conformance/spirv_new/spirv_bin/composite_construct_struct.spv32 index 3ad1aaa2..4f881c53 100644 Binary files a/test_conformance/spirv_new/spirv_bin/composite_construct_struct.spv32 and b/test_conformance/spirv_new/spirv_bin/composite_construct_struct.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_false_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_false_simple.spv32 index 4e8f9f64..e4602a21 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_false_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_false_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_int3_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_int3_simple.spv32 index 77985519..879ed90b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_int3_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_int3_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_int4_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_int4_simple.spv32 index 49141cee..4eb2ff55 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_int4_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_int4_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_int_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_int_simple.spv32 index 829cfc48..34ed429b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_int_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_int_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_long_simple.spv64 b/test_conformance/spirv_new/spirv_bin/constant_long_simple.spv64 index b52f09aa..04a00d9f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_long_simple.spv64 and b/test_conformance/spirv_new/spirv_bin/constant_long_simple.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_struct_int_char_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_struct_int_char_simple.spv32 index 2a01869b..4b57e433 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_struct_int_char_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_struct_int_char_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_struct_int_float_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_struct_int_float_simple.spv32 index e5fcb4ec..7a9b6884 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_struct_int_float_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_struct_int_float_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_struct_struct_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_struct_struct_simple.spv32 index fd43ccd7..853af314 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_struct_struct_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_struct_struct_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_true_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_true_simple.spv32 index 7e4ad767..582afa6e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_true_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_true_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_uint_simple.spv32 b/test_conformance/spirv_new/spirv_bin/constant_uint_simple.spv32 index fe7463d7..2fa31dd2 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_uint_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/constant_uint_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/constant_ulong_simple.spv64 b/test_conformance/spirv_new/spirv_bin/constant_ulong_simple.spv64 index c26d62df..116ebc80 100644 Binary files a/test_conformance/spirv_new/spirv_bin/constant_ulong_simple.spv64 and b/test_conformance/spirv_new/spirv_bin/constant_ulong_simple.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_int3_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_int3_simple.spv32 index 853acbe3..609c8b21 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_int3_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_int3_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_int4_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_int4_simple.spv32 index 720f3e79..98651621 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_int4_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_int4_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_int_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_int_simple.spv32 index 7b194074..701a9e95 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_int_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_int_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_long_simple.spv64 b/test_conformance/spirv_new/spirv_bin/copy_long_simple.spv64 index 19e49d9a..4848064b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_long_simple.spv64 and b/test_conformance/spirv_new/spirv_bin/copy_long_simple.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_struct_int_char_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_struct_int_char_simple.spv32 index 4555a397..2ce64ab7 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_struct_int_char_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_struct_int_char_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_struct_int_float_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_struct_int_float_simple.spv32 index 7e7fc8a8..811b2826 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_struct_int_float_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_struct_int_float_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_struct_struct_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_struct_struct_simple.spv32 index ac029613..7a1d6ed9 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_struct_struct_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_struct_struct_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_uint_simple.spv32 b/test_conformance/spirv_new/spirv_bin/copy_uint_simple.spv32 index 4031b089..053bf6cb 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_uint_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/copy_uint_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/copy_ulong_simple.spv64 b/test_conformance/spirv_new/spirv_bin/copy_ulong_simple.spv64 index 11796a24..b3434bb3 100644 Binary files a/test_conformance/spirv_new/spirv_bin/copy_ulong_simple.spv64 and b/test_conformance/spirv_new/spirv_bin/copy_ulong_simple.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_aliased.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_aliased.spv32 index dc6ead2e..5c0444a4 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_aliased.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_aliased.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_alignment.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_alignment.spv32 index 21ba5600..c5ef2f28 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_alignment.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_alignment.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv32 index 2e49c6fb..6fb02792 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv64 b/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv64 index 9227ffd7..267c0fdc 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv64 and b/test_conformance/spirv_new/spirv_bin/decorate_coherent.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_constant.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_constant.spv32 index 63f1fa08..cda1bc95 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_constant.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_constant.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_constant_fail.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_constant_fail.spv32 index 0b6d84cf..9ef85b5a 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_constant_fail.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_constant_fail.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_cpacked.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_cpacked.spv32 index 13364847..6872389b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_cpacked.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_cpacked.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_restrict.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_restrict.spv32 index 202d6810..6d57ebaa 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_restrict.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_restrict.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_double_long.spv64 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_double_long.spv64 index 9beb6d21..b6d6f063 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_double_long.spv64 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_double_long.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_float_int.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_float_int.spv32 index 85ae5fa9..35bd4cf1 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_float_int.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rte_float_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_double_long.spv64 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_double_long.spv64 index 2520d57d..4ee9b030 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_double_long.spv64 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_double_long.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_float_int.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_float_int.spv32 index ebd57929..2c643028 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_float_int.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtn_float_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_double_long.spv64 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_double_long.spv64 index c4832c79..3e8ad6e1 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_double_long.spv64 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_double_long.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_float_int.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_float_int.spv32 index eb5bbf2a..a78de1c6 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_float_int.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtp_float_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_double_long.spv64 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_double_long.spv64 index 39c9bee0..407595c4 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_double_long.spv64 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_double_long.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_float_int.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_float_int.spv32 index a1cbf95a..315cbb59 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_float_int.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_rounding_rtz_float_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_int.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_int.spv32 index ccb5396e..949b331a 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_int.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_uint.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_uint.spv32 index ebc4b81c..c83a9138 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_uint.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_saturated_conversion_uint.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv32 b/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv32 index 00ea3786..5ca6abc6 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv32 and b/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv64 b/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv64 index 0eaefba4..75584f49 100644 Binary files a/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv64 and b/test_conformance/spirv_new/spirv_bin/decorate_volatile.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv32 index 0c127d85..403d239f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv64 index a2c4ea16..261d7da2 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_int.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv32 index 0cb6df83..a0ad64d1 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv64 index 756c1f56..8c88c5b2 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fadd_uint.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv32 index 0244f5fb..3450f6dc 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv64 index bbed3eb4..a201855d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_int.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv32 index 1614552d..a3bff0aa 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv64 index bcf14c84..8321f37f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fmul_uint.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv32 index 5bd6eb57..58ab454b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv64 index cb30da01..25cba7fa 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fnegate_int.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv32 index 10edf68f..be274a7b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv64 index 6aea920b..7e00ac80 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv32 index d164e1ba..5342bb84 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv64 index 3ab24822..ac03353d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv32 index fd6c17cd..8427279d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv64 index ded47aea..9706e0cf 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv32 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv32 index e74c84ba..9ca74db1 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv32 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv64 b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv64 index 4ed0e5d5..5a9716a2 100644 Binary files a/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv64 and b/test_conformance/spirv_new/spirv_bin/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/label_simple.spv32 b/test_conformance/spirv_new/spirv_bin/label_simple.spv32 index 2cd91baa..338a821d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/label_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/label_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/lifetime_simple.spv32 b/test_conformance/spirv_new/spirv_bin/lifetime_simple.spv32 index 05fb5be2..75a8ef63 100644 Binary files a/test_conformance/spirv_new/spirv_bin/lifetime_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/lifetime_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv32 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv32 index 6e5a1f1f..96aa7423 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv32 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv64 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv64 index 602b5318..0b4ebd3e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv64 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_dont_unroll.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv32 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv32 index 52e1a52c..f1c00ac3 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv32 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv64 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv64 index 14483d80..7490dd63 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv64 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_none.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv32 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv32 index 81d8e277..8571f8e4 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv32 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv64 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv64 index 4e4bc2bd..21a6a99a 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv64 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_conditional_unroll.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv32 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv32 index 799140d6..fbc355f5 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv32 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv64 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv64 index d482be77..c3454038 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv64 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_dont_unroll.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv32 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv32 index b486dd7b..a00b8623 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv32 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv64 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv64 index cfa96d7f..3a4787f2 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv64 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_none.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv32 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv32 index 82459b20..305a0c71 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv32 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv64 b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv64 index b3bff498..af93d9bc 100644 Binary files a/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv64 and b/test_conformance/spirv_new/spirv_bin/loop_merge_branch_unroll.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/op_neg_int.spv32 b/test_conformance/spirv_new/spirv_bin/op_neg_int.spv32 index f7feecdc..7fcd069a 100644 Binary files a/test_conformance/spirv_new/spirv_bin/op_neg_int.spv32 and b/test_conformance/spirv_new/spirv_bin/op_neg_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/op_neg_int4.spv32 b/test_conformance/spirv_new/spirv_bin/op_neg_int4.spv32 index 285f8988..48414147 100644 Binary files a/test_conformance/spirv_new/spirv_bin/op_neg_int4.spv32 and b/test_conformance/spirv_new/spirv_bin/op_neg_int4.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/op_neg_long.spv64 b/test_conformance/spirv_new/spirv_bin/op_neg_long.spv64 index c5474441..c0db13e2 100644 Binary files a/test_conformance/spirv_new/spirv_bin/op_neg_long.spv64 and b/test_conformance/spirv_new/spirv_bin/op_neg_long.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/op_not_int.spv32 b/test_conformance/spirv_new/spirv_bin/op_not_int.spv32 index 892fe554..2e6f997b 100644 Binary files a/test_conformance/spirv_new/spirv_bin/op_not_int.spv32 and b/test_conformance/spirv_new/spirv_bin/op_not_int.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/op_not_int4.spv32 b/test_conformance/spirv_new/spirv_bin/op_not_int4.spv32 index 0af94521..bbc1b56c 100644 Binary files a/test_conformance/spirv_new/spirv_bin/op_not_int4.spv32 and b/test_conformance/spirv_new/spirv_bin/op_not_int4.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/op_not_long.spv64 b/test_conformance/spirv_new/spirv_bin/op_not_long.spv64 index 671a10bb..13719ede 100644 Binary files a/test_conformance/spirv_new/spirv_bin/op_not_long.spv64 and b/test_conformance/spirv_new/spirv_bin/op_not_long.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/phi_2.spv32 b/test_conformance/spirv_new/spirv_bin/phi_2.spv32 index 85558579..22ae7865 100644 Binary files a/test_conformance/spirv_new/spirv_bin/phi_2.spv32 and b/test_conformance/spirv_new/spirv_bin/phi_2.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/phi_3.spv32 b/test_conformance/spirv_new/spirv_bin/phi_3.spv32 index c9c6f65a..de55f63e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/phi_3.spv32 and b/test_conformance/spirv_new/spirv_bin/phi_3.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/phi_4.spv32 b/test_conformance/spirv_new/spirv_bin/phi_4.spv32 index 7221e5ec..45e74e0e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/phi_4.spv32 and b/test_conformance/spirv_new/spirv_bin/phi_4.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv32 b/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv32 index a82c609e..e454917c 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv32 and b/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv64 b/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv64 index ee6686d6..913b327e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv64 and b/test_conformance/spirv_new/spirv_bin/select_if_dont_flatten.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv32 b/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv32 index 4e53ee51..5f42dcdf 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv32 and b/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv64 b/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv64 index 06bc45fa..f266d21c 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv64 and b/test_conformance/spirv_new/spirv_bin/select_if_flatten.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_if_none.spv32 b/test_conformance/spirv_new/spirv_bin/select_if_none.spv32 index 59162481..be9ffb66 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_if_none.spv32 and b/test_conformance/spirv_new/spirv_bin/select_if_none.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_if_none.spv64 b/test_conformance/spirv_new/spirv_bin/select_if_none.spv64 index 32f4248e..3719f76f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_if_none.spv64 and b/test_conformance/spirv_new/spirv_bin/select_if_none.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv32 b/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv32 index 80092e59..5caee394 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv32 and b/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv64 b/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv64 index b0c9f7ff..937cd4d4 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv64 and b/test_conformance/spirv_new/spirv_bin/select_switch_dont_flatten.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv32 b/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv32 index dad04416..c8ed6df7 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv32 and b/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv64 b/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv64 index 3bc755d8..579681d8 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv64 and b/test_conformance/spirv_new/spirv_bin/select_switch_flatten.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_switch_none.spv32 b/test_conformance/spirv_new/spirv_bin/select_switch_none.spv32 index c26e4a4f..e92f494c 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_switch_none.spv32 and b/test_conformance/spirv_new/spirv_bin/select_switch_none.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/select_switch_none.spv64 b/test_conformance/spirv_new/spirv_bin/select_switch_none.spv64 index 43eea32a..385281ad 100644 Binary files a/test_conformance/spirv_new/spirv_bin/select_switch_none.spv64 and b/test_conformance/spirv_new/spirv_bin/select_switch_none.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_false_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_false_simple.spv32 index 1387d14e..1b56ccdd 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_false_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_false_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_int3_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_int3_simple.spv32 index 7c7f2a2e..73ae0c2a 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_int3_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_int3_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_int4_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_int4_simple.spv32 index 9905f137..a4fac3ef 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_int4_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_int4_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_int_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_int_simple.spv32 index a7fc24e8..244aa7ea 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_int_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_int_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_long_simple.spv64 b/test_conformance/spirv_new/spirv_bin/undef_long_simple.spv64 index 087bb131..fe0bae64 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_long_simple.spv64 and b/test_conformance/spirv_new/spirv_bin/undef_long_simple.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_struct_int_char_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_struct_int_char_simple.spv32 index 652b8358..97a02527 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_struct_int_char_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_struct_int_char_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_struct_int_float_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_struct_int_float_simple.spv32 index f6ad4ceb..912e9e8f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_struct_int_float_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_struct_int_float_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_struct_struct_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_struct_struct_simple.spv32 index a66ae58a..8d8fe398 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_struct_struct_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_struct_struct_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_true_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_true_simple.spv32 index bf658802..08b9033d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_true_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_true_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_uint_simple.spv32 b/test_conformance/spirv_new/spirv_bin/undef_uint_simple.spv32 index cd0c23ca..0073745e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_uint_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/undef_uint_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/undef_ulong_simple.spv64 b/test_conformance/spirv_new/spirv_bin/undef_ulong_simple.spv64 index f0c9959e..4651d73a 100644 Binary files a/test_conformance/spirv_new/spirv_bin/undef_ulong_simple.spv64 and b/test_conformance/spirv_new/spirv_bin/undef_ulong_simple.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/unreachable_simple.spv32 b/test_conformance/spirv_new/spirv_bin/unreachable_simple.spv32 index 2411c130..0d4f238c 100644 Binary files a/test_conformance/spirv_new/spirv_bin/unreachable_simple.spv32 and b/test_conformance/spirv_new/spirv_bin/unreachable_simple.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_char16_extract.spv32 b/test_conformance/spirv_new/spirv_bin/vector_char16_extract.spv32 index 567f79fd..6acf7eee 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_char16_extract.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_char16_extract.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_char16_insert.spv32 b/test_conformance/spirv_new/spirv_bin/vector_char16_insert.spv32 index ac3f8ead..074e2e5c 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_char16_insert.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_char16_insert.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_double2_extract.spv32 b/test_conformance/spirv_new/spirv_bin/vector_double2_extract.spv32 index b90d90a5..19eb9400 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_double2_extract.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_double2_extract.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_double2_insert.spv32 b/test_conformance/spirv_new/spirv_bin/vector_double2_insert.spv32 index 7d50d010..02601e50 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_double2_insert.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_double2_insert.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_float4_extract.spv32 b/test_conformance/spirv_new/spirv_bin/vector_float4_extract.spv32 index dab24e00..a1c48882 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_float4_extract.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_float4_extract.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_float4_insert.spv32 b/test_conformance/spirv_new/spirv_bin/vector_float4_insert.spv32 index c613d211..f6bba1ea 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_float4_insert.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_float4_insert.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv32 b/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv32 index e1a38be1..50d5dd4f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv64 b/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv64 index 8ea6cb15..5b6b0c18 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv64 and b/test_conformance/spirv_new/spirv_bin/vector_int4_extract.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv32 b/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv32 index e2121368..006ec9ac 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv64 b/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv64 index faf0238e..47996ede 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv64 and b/test_conformance/spirv_new/spirv_bin/vector_int4_insert.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv32 b/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv32 index aa7fe80e..229e3b6d 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv64 b/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv64 index 7efda1ee..34d2517e 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv64 and b/test_conformance/spirv_new/spirv_bin/vector_long2_extract.spv64 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv32 b/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv32 index e42212f2..e62cef9f 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv32 and b/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv32 differ diff --git a/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv64 b/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv64 index 9ef31d8b..2eb88331 100644 Binary files a/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv64 and b/test_conformance/spirv_new/spirv_bin/vector_long2_insert.spv64 differ diff --git a/test_conformance/spirv_new/spirv_txt/atomic_dec_global.spvasm32 b/test_conformance/spirv_new/spirv_txt/atomic_dec_global.spvasm32 deleted file mode 100644 index cc6f048e..00000000 --- a/test_conformance/spirv_new/spirv_txt/atomic_dec_global.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "atomic_dec_global" - OpName %global_id "__spirv_GlobalInvocationId" - OpName %val_ptr "val" - OpName %ctr_ptr "counter" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %val_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%scope_dev = OpConstant %int_t 1 -%sem_cwg = OpConstant %int_t 512 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%val_ptr = OpFunctionParameter %int_ptr_t -%ctr_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%res = OpAtomicIDecrement %int_t %ctr_ptr %scope_dev %sem_cwg -%val_loc = OpInBoundsPtrAccessChain %int_ptr_t %val_ptr %idx - OpStore %val_loc %res Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/atomic_dec_global.spvasm64 b/test_conformance/spirv_new/spirv_txt/atomic_dec_global.spvasm64 deleted file mode 100644 index 4df145f5..00000000 --- a/test_conformance/spirv_new/spirv_txt/atomic_dec_global.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "atomic_dec_global" - OpName %global_id "__spirv_GlobalInvocationId" - OpName %val_ptr "val" - OpName %ctr_ptr "counter" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %val_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%scope_dev = OpConstant %int_t 1 -%sem_cwg = OpConstant %int_t 512 -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%val_ptr = OpFunctionParameter %int_ptr_t -%ctr_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%res = OpAtomicIDecrement %int_t %ctr_ptr %scope_dev %sem_cwg -%val_loc = OpInBoundsPtrAccessChain %int_ptr_t %val_ptr %idx - OpStore %val_loc %res Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/atomic_inc_global.spvasm32 b/test_conformance/spirv_new/spirv_txt/atomic_inc_global.spvasm32 deleted file mode 100644 index c6c8b30c..00000000 --- a/test_conformance/spirv_new/spirv_txt/atomic_inc_global.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "atomic_inc_global" - OpName %global_id "__spirv_GlobalInvocationId" - OpName %val_ptr "val" - OpName %ctr_ptr "counter" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %val_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%scope_dev = OpConstant %int_t 1 -%sem_cwg = OpConstant %int_t 512 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%val_ptr = OpFunctionParameter %int_ptr_t -%ctr_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%res = OpAtomicIIncrement %int_t %ctr_ptr %scope_dev %sem_cwg -%val_loc = OpInBoundsPtrAccessChain %int_ptr_t %val_ptr %idx - OpStore %val_loc %res Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/atomic_inc_global.spvasm64 b/test_conformance/spirv_new/spirv_txt/atomic_inc_global.spvasm64 deleted file mode 100644 index ec0a35d1..00000000 --- a/test_conformance/spirv_new/spirv_txt/atomic_inc_global.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "atomic_inc_global" - OpName %global_id "__spirv_GlobalInvocationId" - OpName %val_ptr "val" - OpName %ctr_ptr "counter" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %val_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%scope_dev = OpConstant %int_t 1 -%sem_cwg = OpConstant %int_t 512 -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%val_ptr = OpFunctionParameter %int_ptr_t -%ctr_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%res = OpAtomicIIncrement %int_t %ctr_ptr %scope_dev %sem_cwg -%val_loc = OpInBoundsPtrAccessChain %int_ptr_t %val_ptr %idx - OpStore %val_loc %res Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/branch_conditional.spvasm32 b/test_conformance/spirv_new/spirv_txt/branch_conditional.spvasm32 deleted file mode 100644 index 40a0404d..00000000 --- a/test_conformance/spirv_new/spirv_txt/branch_conditional.spvasm32 +++ /dev/null @@ -1,53 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "branch_conditional" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/branch_conditional.spvasm64 b/test_conformance/spirv_new/spirv_txt/branch_conditional.spvasm64 deleted file mode 100644 index e318e14c..00000000 --- a/test_conformance/spirv_new/spirv_txt/branch_conditional.spvasm64 +++ /dev/null @@ -1,58 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "branch_conditional" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/branch_conditional_weighted.spvasm32 b/test_conformance/spirv_new/spirv_txt/branch_conditional_weighted.spvasm32 deleted file mode 100644 index 779d5ef9..00000000 --- a/test_conformance/spirv_new/spirv_txt/branch_conditional_weighted.spvasm32 +++ /dev/null @@ -1,53 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "branch_conditional_weighted" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare %block1 %block2 4 6 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/branch_conditional_weighted.spvasm64 b/test_conformance/spirv_new/spirv_txt/branch_conditional_weighted.spvasm64 deleted file mode 100644 index 6ae492f9..00000000 --- a/test_conformance/spirv_new/spirv_txt/branch_conditional_weighted.spvasm64 +++ /dev/null @@ -1,58 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "branch_conditional_weighted" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare %block1 %block2 4 6 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/branch_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/branch_simple.spvasm32 deleted file mode 100644 index 8d2308e3..00000000 --- a/test_conformance/spirv_new/spirv_txt/branch_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "branch_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%outptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current_in = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%current_out = OpInBoundsPtrAccessChain %int_ptr_t %outptr %idx -%val = OpLoad %int_t %current_in - OpBranch %final_block -%final_block = OpLabel - OpStore %current_out %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/branch_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/branch_simple.spvasm64 deleted file mode 100644 index 9d4f5884..00000000 --- a/test_conformance/spirv_new/spirv_txt/branch_simple.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "branch_simple" - OpName %inptr "in" - OpName %outptr "out" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%outptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current_in = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%current_out = OpInBoundsPtrAccessChain %int_ptr_t %outptr %idx - OpBranch %final_block -%final_block = OpLabel -%val = OpLoad %int_t %current_in - OpStore %current_out %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/composite_construct_int4.spvasm32 b/test_conformance/spirv_new/spirv_txt/composite_construct_int4.spvasm32 deleted file mode 100644 index a4de927f..00000000 --- a/test_conformance/spirv_new/spirv_txt/composite_construct_int4.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "composite_construct_int4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%val3 = OpConstant %int_t 119 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%vec = OpCompositeConstruct %int4_t %val0 %val1 %val2 %val3 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/composite_construct_int4.spvasm64 b/test_conformance/spirv_new/spirv_txt/composite_construct_int4.spvasm64 deleted file mode 100644 index 69806cbe..00000000 --- a/test_conformance/spirv_new/spirv_txt/composite_construct_int4.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "composite_construct_int4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%shift_val = OpConstant %idx_t 32 -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%val3 = OpConstant %int_t 119 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%vec = OpCompositeConstruct %int4_t %val0 %val1 %val2 %val3 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx - OpStore %current %vec - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/composite_construct_struct.spvasm32 b/test_conformance/spirv_new/spirv_txt/composite_construct_struct.spvasm32 deleted file mode 100644 index 270c2e7e..00000000 --- a/test_conformance/spirv_new/spirv_txt/composite_construct_struct.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "composite_construct_struct" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%int_vec_0 = OpConstant %int_t 2100480000 -%int_vec_1 = OpConstant %int_t 2100480000 -%int2_val = OpConstantComposite %int2_t %int_vec_0 %int_vec_1 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct_val = OpCompositeConstruct %struct_t %int_val %char_val -%struct2_val = OpCompositeConstruct %struct2_t %int2_val %struct_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct2_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/composite_construct_struct.spvasm64 b/test_conformance/spirv_new/spirv_txt/composite_construct_struct.spvasm64 deleted file mode 100644 index 67c99bc0..00000000 --- a/test_conformance/spirv_new/spirv_txt/composite_construct_struct.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "composite_construct_struct" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%int_vec_0 = OpConstant %int_t 2100480000 -%int_vec_1 = OpConstant %int_t 2100480000 -%int2_val = OpConstantComposite %int2_t %int_vec_0 %int_vec_1 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct_val = OpCompositeConstruct %struct_t %int_val %char_val -%struct2_val = OpCompositeConstruct %struct2_t %int2_val %struct_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct2_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_char_simple.spvasm32 deleted file mode 100644 index 9ce758a2..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_char_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%func_t = OpTypeFunction %void_t %char_ptr_t -%val = OpConstant %char_t 20 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %char_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %char_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_char_simple.spvasm64 deleted file mode 100644 index 8c5cea76..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_char_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%func_t = OpTypeFunction %void_t %char_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %char_t 20 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %char_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %char_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_double_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_double_simple.spvasm32 deleted file mode 100644 index 15af1dae..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_double_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_double_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%val = OpConstant %double_t 3.141592653589793 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_double_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_double_simple.spvasm64 deleted file mode 100644 index 52a95c20..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_double_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_double_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %double_t 3.141592653589793 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_false_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_false_simple.spvasm32 deleted file mode 100644 index 67ea6f1c..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_false_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_false_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%bool_val = OpConstantFalse %bool_t -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_false_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_false_simple.spvasm64 deleted file mode 100644 index 99f203bf..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_false_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_false_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%bool_val = OpConstantFalse %bool_t -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_float_simple.spvasm32 deleted file mode 100644 index 54aa082b..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_float_simple.spvasm32 +++ /dev/null @@ -1,28 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%val = OpConstant %float_t 3.1415927 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_float_simple.spvasm64 deleted file mode 100644 index f52a86a8..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_float_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %float_t 3.1415927 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_half_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_half_simple.spvasm32 deleted file mode 100644 index c8cdb9f4..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_half_simple.spvasm32 +++ /dev/null @@ -1,31 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_half_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%half_t = OpTypeFloat 16 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%half_val = OpConstant %half_t 3.25 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%val = OpFConvert %float_t %half_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_half_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_half_simple.spvasm64 deleted file mode 100644 index ab33b6a1..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_half_simple.spvasm64 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_half_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%half_t = OpTypeFloat 16 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%half_val = OpConstant %half_t 3.25 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%val = OpFConvert %float_t %half_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_int3_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_int3_simple.spvasm32 deleted file mode 100644 index 752a52e4..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_int3_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_int3_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int3_t = OpTypeVector %int_t 3 -%int3_ptr_t = OpTypePointer CrossWorkgroup %int3_t -%func_t = OpTypeFunction %void_t %int3_ptr_t -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%vec = OpConstantComposite %int3_t %val0 %val1 %val2 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int3_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int3_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_int3_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_int3_simple.spvasm64 deleted file mode 100644 index def2ae5f..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_int3_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_int3_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int3_t = OpTypeVector %int_t 3 -%int3_ptr_t = OpTypePointer CrossWorkgroup %int3_t -%func_t = OpTypeFunction %void_t %int3_ptr_t -%shift_val = OpConstant %idx_t 32 -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%vec = OpConstantComposite %int3_t %val0 %val1 %val2 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int3_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int3_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_int4_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_int4_simple.spvasm32 deleted file mode 100644 index 04523f8a..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_int4_simple.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_int4_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%val3 = OpConstant %int_t 119 -%vec = OpConstantComposite %int4_t %val0 %val1 %val2 %val3 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_int4_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_int4_simple.spvasm64 deleted file mode 100644 index d3c741f3..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_int4_simple.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_int4_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%shift_val = OpConstant %idx_t 32 -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%val3 = OpConstant %int_t 119 -%vec = OpConstantComposite %int4_t %val0 %val1 %val2 %val3 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx - OpStore %current %vec - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_int_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_int_simple.spvasm32 deleted file mode 100644 index 2f7e7d7a..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_int_simple.spvasm32 +++ /dev/null @@ -1,28 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_int_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%val = OpConstant %int_t 123 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_int_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_int_simple.spvasm64 deleted file mode 100644 index f2e8a6fb..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_int_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_int_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %int_t 123 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_long_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_long_simple.spvasm32 deleted file mode 100644 index 46659e7c..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_long_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_long_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%val = OpConstant %long_t 34359738368 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_long_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_long_simple.spvasm64 deleted file mode 100644 index 626554a9..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_long_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_long_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %long_t 34359738368 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_short_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_short_simple.spvasm32 deleted file mode 100644 index 8416d112..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_short_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_short_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%val = OpConstant %short_t 32000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_short_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_short_simple.spvasm64 deleted file mode 100644 index 73a5cfea..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_short_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_short_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %short_t 32000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_struct_int_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_struct_int_char_simple.spvasm32 deleted file mode 100644 index 130f2567..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_struct_int_char_simple.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_struct_int_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_struct_int_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_struct_int_char_simple.spvasm64 deleted file mode 100644 index d67f91d3..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_struct_int_char_simple.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_struct_int_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_struct_int_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_struct_int_float_simple.spvasm32 deleted file mode 100644 index dd53cef7..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_struct_int_float_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_struct_int_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%float_t = OpTypeFloat 32 -%struct_t = OpTypeStruct %int_t %float_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 1024 -%float_val = OpConstant %float_t 3.1415 -%struct_val = OpConstantComposite %struct_t %int_val %float_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_struct_int_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_struct_int_float_simple.spvasm64 deleted file mode 100644 index 14a0ea3d..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_struct_int_float_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_struct_int_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%float_t = OpTypeFloat 32 -%struct_t = OpTypeStruct %int_t %float_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 1024 -%float_val = OpConstant %float_t 3.1415 -%struct_val = OpConstantComposite %struct_t %int_val %float_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_struct_struct_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_struct_struct_simple.spvasm32 deleted file mode 100644 index b61db8ee..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_struct_struct_simple.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_struct_struct_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%int_vec_0 = OpConstant %int_t 2100480000 -%int_vec_1 = OpConstant %int_t 2100480000 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%int2_val = OpConstantComposite %int2_t %int_vec_0 %int_vec_1 -%struct2_val = OpConstantComposite %struct2_t %int2_val %struct_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct2_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_struct_struct_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_struct_struct_simple.spvasm64 deleted file mode 100644 index 7159c704..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_struct_struct_simple.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_struct_struct_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%int_vec_0 = OpConstant %int_t 2100480000 -%int_vec_1 = OpConstant %int_t 2100480000 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%int2_val = OpConstantComposite %int2_t %int_vec_0 %int_vec_1 -%struct2_val = OpConstantComposite %struct2_t %int2_val %struct_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct2_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_true_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_true_simple.spvasm32 deleted file mode 100644 index a8f6d0eb..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_true_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_true_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%bool_val = OpConstantTrue %bool_t -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_true_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_true_simple.spvasm64 deleted file mode 100644 index 8854e004..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_true_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_true_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%bool_val = OpConstantTrue %bool_t -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_uchar_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_uchar_simple.spvasm32 deleted file mode 100644 index fd8e0d8b..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_uchar_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_uchar_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uchar_t = OpTypeInt 8 0 -%uchar_ptr_t = OpTypePointer CrossWorkgroup %uchar_t -%func_t = OpTypeFunction %void_t %uchar_ptr_t -%val = OpConstant %uchar_t 19 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uchar_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %uchar_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_uchar_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_uchar_simple.spvasm64 deleted file mode 100644 index acb6b3bf..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_uchar_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_uchar_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uchar_t = OpTypeInt 8 0 -%uchar_ptr_t = OpTypePointer CrossWorkgroup %uchar_t -%func_t = OpTypeFunction %void_t %uchar_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %uchar_t 19 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uchar_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %uchar_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_uint_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_uint_simple.spvasm32 deleted file mode 100644 index 563e5389..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_uint_simple.spvasm32 +++ /dev/null @@ -1,28 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_uint_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uint_t = OpTypeInt 32 0 -%uint_ptr_t = OpTypePointer CrossWorkgroup %uint_t -%func_t = OpTypeFunction %void_t %uint_ptr_t -%val = OpConstant %uint_t 54321 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uint_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %uint_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_uint_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_uint_simple.spvasm64 deleted file mode 100644 index e383513e..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_uint_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_uint_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uint_t = OpTypeInt 32 0 -%uint_ptr_t = OpTypePointer CrossWorkgroup %uint_t -%func_t = OpTypeFunction %void_t %uint_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %uint_t 54321 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uint_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %uint_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_ulong_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_ulong_simple.spvasm32 deleted file mode 100644 index 09e8e3fe..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_ulong_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_ulong_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ulong_t = OpTypeInt 64 0 -%ulong_ptr_t = OpTypePointer CrossWorkgroup %ulong_t -%func_t = OpTypeFunction %void_t %ulong_ptr_t -%val = OpConstant %ulong_t 9223372036854775810 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ulong_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %ulong_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_ulong_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_ulong_simple.spvasm64 deleted file mode 100644 index 87621844..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_ulong_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_ulong_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ulong_t = OpTypeInt 64 0 -%ulong_ptr_t = OpTypePointer CrossWorkgroup %ulong_t -%func_t = OpTypeFunction %void_t %ulong_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %ulong_t 9223372036854775810 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ulong_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %ulong_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_ushort_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/constant_ushort_simple.spvasm32 deleted file mode 100644 index 198a96da..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_ushort_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "constant_ushort_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ushort_t = OpTypeInt 16 0 -%ushort_ptr_t = OpTypePointer CrossWorkgroup %ushort_t -%func_t = OpTypeFunction %void_t %ushort_ptr_t -%val = OpConstant %ushort_t 65000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ushort_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %ushort_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/constant_ushort_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/constant_ushort_simple.spvasm64 deleted file mode 100644 index a5c770b3..00000000 --- a/test_conformance/spirv_new/spirv_txt/constant_ushort_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "constant_ushort_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ushort_t = OpTypeInt 16 0 -%ushort_ptr_t = OpTypePointer CrossWorkgroup %ushort_t -%func_t = OpTypeFunction %void_t %ushort_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %ushort_t 65000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ushort_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %ushort_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_char_simple.spvasm32 deleted file mode 100644 index ea1bb922..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_char_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%func_t = OpTypeFunction %void_t %char_ptr_t -%val = OpConstant %char_t 20 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %char_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %char_ptr_t %inptr %idx -%out_val = OpCopyObject %char_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_char_simple.spvasm64 deleted file mode 100644 index 396898ff..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_char_simple.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%func_t = OpTypeFunction %void_t %char_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %char_t 20 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %char_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %char_ptr_t %inptr %idx -%out_val = OpCopyObject %char_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_double_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_double_simple.spvasm32 deleted file mode 100644 index 53d615e1..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_double_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_double_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%val = OpConstant %double_t 3.141592653589793 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx -%out_val = OpCopyObject %double_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_double_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_double_simple.spvasm64 deleted file mode 100644 index 5ad9a360..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_double_simple.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_double_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %double_t 3.141592653589793 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx -%out_val = OpCopyObject %double_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_float_simple.spvasm32 deleted file mode 100644 index ae8ac96f..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_float_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%val = OpConstant %float_t 3.1415927 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%out_val = OpCopyObject %float_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_float_simple.spvasm64 deleted file mode 100644 index 773e16ed..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_float_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %float_t 3.1415927 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%out_val = OpCopyObject %float_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_half_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_half_simple.spvasm32 deleted file mode 100644 index 07caf390..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_half_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_half_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%half_t = OpTypeFloat 16 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%half_val = OpConstant %half_t 3.25 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%half_copy = OpCopyObject %half_t %half_val -%val = OpFConvert %float_t %half_copy -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_half_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_half_simple.spvasm64 deleted file mode 100644 index 165d71e6..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_half_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_half_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%half_t = OpTypeFloat 16 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%half_val = OpConstant %half_t 3.25 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%half_copy = OpCopyObject %half_t %half_val -%val = OpFConvert %float_t %half_copy -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_int3_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_int3_simple.spvasm32 deleted file mode 100644 index 1cd2eca8..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_int3_simple.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_int3_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int3_t = OpTypeVector %int_t 3 -%int3_ptr_t = OpTypePointer CrossWorkgroup %int3_t -%func_t = OpTypeFunction %void_t %int3_ptr_t -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%vec = OpConstantComposite %int3_t %val0 %val1 %val2 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int3_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int3_ptr_t %inptr %idx -%out_vec = OpCopyObject %int3_t %vec - OpStore %current %out_vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_int3_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_int3_simple.spvasm64 deleted file mode 100644 index b2ec5289..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_int3_simple.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_int3_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int3_t = OpTypeVector %int_t 3 -%int3_ptr_t = OpTypePointer CrossWorkgroup %int3_t -%func_t = OpTypeFunction %void_t %int3_ptr_t -%shift_val = OpConstant %idx_t 32 -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%vec = OpConstantComposite %int3_t %val0 %val1 %val2 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int3_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int3_ptr_t %inptr %idx -%out_vec = OpCopyObject %int3_t %vec - OpStore %current %out_vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_int4_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_int4_simple.spvasm32 deleted file mode 100644 index f434988d..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_int4_simple.spvasm32 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_int4_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%val3 = OpConstant %int_t 119 -%vec = OpConstantComposite %int4_t %val0 %val1 %val2 %val3 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx -%out_vec = OpCopyObject %int4_t %vec - OpStore %current %out_vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_int4_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_int4_simple.spvasm64 deleted file mode 100644 index 62e1668b..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_int4_simple.spvasm64 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_int4_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%shift_val = OpConstant %idx_t 32 -%val0 = OpConstant %int_t 123 -%val1 = OpConstant %int_t 122 -%val2 = OpConstant %int_t 121 -%val3 = OpConstant %int_t 119 -%vec = OpConstantComposite %int4_t %val0 %val1 %val2 %val3 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx -%out_vec = OpCopyObject %int4_t %vec - OpStore %current %out_vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_int_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_int_simple.spvasm32 deleted file mode 100644 index 204409fd..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_int_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_int_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%val = OpConstant %int_t 123 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%out_val = OpCopyObject %int_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_int_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_int_simple.spvasm64 deleted file mode 100644 index 0af0641e..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_int_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_int_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %int_t 123 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%out_val = OpCopyObject %int_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_long_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_long_simple.spvasm32 deleted file mode 100644 index 3e317c77..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_long_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_long_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%val = OpConstant %long_t 34359738368 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx -%out_val = OpCopyObject %long_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_long_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_long_simple.spvasm64 deleted file mode 100644 index 5e4a899c..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_long_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_long_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %long_t 34359738368 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx -%out_val = OpCopyObject %long_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_short_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_short_simple.spvasm32 deleted file mode 100644 index c4c00063..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_short_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_short_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%val = OpConstant %short_t 32000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx -%out_val = OpCopyObject %short_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_short_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_short_simple.spvasm64 deleted file mode 100644 index 6704cdd5..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_short_simple.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_short_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %short_t 32000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx -%out_val = OpCopyObject %short_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_struct_int_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_struct_int_char_simple.spvasm32 deleted file mode 100644 index 836ce149..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_struct_int_char_simple.spvasm32 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_struct_int_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx -%out_val = OpCopyObject %struct_t %struct_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_struct_int_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_struct_int_char_simple.spvasm64 deleted file mode 100644 index 38d10920..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_struct_int_char_simple.spvasm64 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_struct_int_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx -%out_val = OpCopyObject %struct_t %struct_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_struct_int_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_struct_int_float_simple.spvasm32 deleted file mode 100644 index 1fe7188e..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_struct_int_float_simple.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_struct_int_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%float_t = OpTypeFloat 32 -%struct_t = OpTypeStruct %int_t %float_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 1024 -%float_val = OpConstant %float_t 3.1415 -%struct_val = OpConstantComposite %struct_t %int_val %float_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx -%out_val = OpCopyObject %struct_t %struct_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_struct_int_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_struct_int_float_simple.spvasm64 deleted file mode 100644 index 4293a921..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_struct_int_float_simple.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_struct_int_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%float_t = OpTypeFloat 32 -%struct_t = OpTypeStruct %int_t %float_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 1024 -%float_val = OpConstant %float_t 3.1415 -%struct_val = OpConstantComposite %struct_t %int_val %float_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx -%out_val = OpCopyObject %struct_t %struct_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_struct_struct_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_struct_struct_simple.spvasm32 deleted file mode 100644 index cc1959d3..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_struct_struct_simple.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Int8 - OpCapability Linkage - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_struct_struct_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%int_vec_0 = OpConstant %int_t 2100480000 -%int_vec_1 = OpConstant %int_t 2100480000 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%int2_val = OpConstantComposite %int2_t %int_vec_0 %int_vec_1 -%struct2_val = OpConstantComposite %struct2_t %int2_val %struct_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx -%out_val = OpCopyObject %struct2_t %struct2_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_struct_struct_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_struct_struct_simple.spvasm64 deleted file mode 100644 index 2445bae0..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_struct_struct_simple.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_struct_struct_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 128 -%int_vec_0 = OpConstant %int_t 2100480000 -%int_vec_1 = OpConstant %int_t 2100480000 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%int2_val = OpConstantComposite %int2_t %int_vec_0 %int_vec_1 -%struct2_val = OpConstantComposite %struct2_t %int2_val %struct_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx -%out_val = OpCopyObject %struct2_t %struct2_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_uchar_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_uchar_simple.spvasm32 deleted file mode 100644 index df648d9e..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_uchar_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_uchar_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uchar_t = OpTypeInt 8 0 -%uchar_ptr_t = OpTypePointer CrossWorkgroup %uchar_t -%func_t = OpTypeFunction %void_t %uchar_ptr_t -%val = OpConstant %uchar_t 19 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uchar_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %uchar_ptr_t %inptr %idx -%out_val = OpCopyObject %uchar_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_uchar_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_uchar_simple.spvasm64 deleted file mode 100644 index 88bec6b6..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_uchar_simple.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_uchar_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uchar_t = OpTypeInt 8 0 -%uchar_ptr_t = OpTypePointer CrossWorkgroup %uchar_t -%func_t = OpTypeFunction %void_t %uchar_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %uchar_t 19 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uchar_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %uchar_ptr_t %inptr %idx -%out_val = OpCopyObject %uchar_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_uint_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_uint_simple.spvasm32 deleted file mode 100644 index 7e96279a..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_uint_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_uint_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uint_t = OpTypeInt 32 0 -%uint_ptr_t = OpTypePointer CrossWorkgroup %uint_t -%func_t = OpTypeFunction %void_t %uint_ptr_t -%val = OpConstant %uint_t 54321 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uint_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %uint_ptr_t %inptr %idx -%out_val = OpCopyObject %uint_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_uint_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_uint_simple.spvasm64 deleted file mode 100644 index 61b70281..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_uint_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_uint_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uint_t = OpTypeInt 32 0 -%uint_ptr_t = OpTypePointer CrossWorkgroup %uint_t -%func_t = OpTypeFunction %void_t %uint_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %uint_t 54321 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uint_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %uint_ptr_t %inptr %idx -%out_val = OpCopyObject %uint_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_ulong_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_ulong_simple.spvasm32 deleted file mode 100644 index 8135e14b..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_ulong_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_ulong_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ulong_t = OpTypeInt 64 0 -%ulong_ptr_t = OpTypePointer CrossWorkgroup %ulong_t -%func_t = OpTypeFunction %void_t %ulong_ptr_t -%val = OpConstant %ulong_t 9223372036854775810 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ulong_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %ulong_ptr_t %inptr %idx -%out_val = OpCopyObject %ulong_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_ulong_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_ulong_simple.spvasm64 deleted file mode 100644 index 37cdc1f4..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_ulong_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_ulong_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ulong_t = OpTypeInt 64 0 -%ulong_ptr_t = OpTypePointer CrossWorkgroup %ulong_t -%func_t = OpTypeFunction %void_t %ulong_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %ulong_t 9223372036854775810 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ulong_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %ulong_ptr_t %inptr %idx -%out_val = OpCopyObject %ulong_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_ushort_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/copy_ushort_simple.spvasm32 deleted file mode 100644 index 091e3e4b..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_ushort_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "copy_ushort_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ushort_t = OpTypeInt 16 0 -%ushort_ptr_t = OpTypePointer CrossWorkgroup %ushort_t -%func_t = OpTypeFunction %void_t %ushort_ptr_t -%val = OpConstant %ushort_t 65000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ushort_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %ushort_ptr_t %inptr %idx -%out_val = OpCopyObject %ushort_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/copy_ushort_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/copy_ushort_simple.spvasm64 deleted file mode 100644 index 2aa5e122..00000000 --- a/test_conformance/spirv_new/spirv_txt/copy_ushort_simple.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "copy_ushort_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ushort_t = OpTypeInt 16 0 -%ushort_ptr_t = OpTypePointer CrossWorkgroup %ushort_t -%func_t = OpTypeFunction %void_t %ushort_ptr_t -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %ushort_t 65000 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ushort_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %ushort_ptr_t %inptr %idx -%out_val = OpCopyObject %ushort_t %val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_aliased.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_aliased.spvasm32 deleted file mode 100644 index bd6e575a..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_aliased.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_aliased" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Aliased -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_aliased.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_aliased.spvasm64 deleted file mode 100644 index beb2842a..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_aliased.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_aliased" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Aliased -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_alignment.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_alignment.spvasm32 deleted file mode 100644 index 48960abe..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_alignment.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_alignment" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Alignment 4 -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_alignment.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_alignment.spvasm64 deleted file mode 100644 index 980e74b6..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_alignment.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_alignment" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Alignment 4 -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_coherent.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_coherent.spvasm32 deleted file mode 100644 index 718fb36a..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_coherent.spvasm32 +++ /dev/null @@ -1,75 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability ImageBasic - OpCapability LiteralSampler - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %15 "decorate_coherent" - OpName %5 "sampler" - OpName %8 "__spirv_BuiltInGlobalInvocationId" - OpName %9 "__spirv_BuiltInGlobalSize" - OpName %16 "dst" - OpName %17 "src" - OpName %18 "entry" - OpName %20 "call" - OpName %22 "call1" - OpName %24 "call2" - OpName %25 "mul" - OpName %26 "add" - OpName %29 "vecinit" - OpName %30 "vecinit6" - OpName %34 "TempSampledImage" - OpName %35 "call7.old" - OpName %38 "arrayidx" - OpDecorate %17 Coherent - OpDecorate %39 Constant -%39 = OpDecorationGroup - OpDecorate %8 BuiltIn GlobalInvocationId - OpDecorate %9 BuiltIn GlobalSize - OpDecorate %16 FuncParamAttr NoCapture - OpDecorate %5 LinkageAttributes "sampler" Export - OpDecorate %9 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %8 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %5 Alignment 4 - OpGroupDecorate %39 %5 %8 %9 - %2 = OpTypeInt 32 0 - %3 = OpConstant %2 16 - %4 = OpTypePointer UniformConstant %2 - %6 = OpTypeVector %2 3 - %7 = OpTypePointer UniformConstant %6 -%10 = OpTypeVoid -%11 = OpTypeVector %2 4 -%12 = OpTypePointer CrossWorkgroup %11 -%13 = OpTypeImage %10 2D 0 0 0 0 Unknown -%14 = OpTypeFunction %10 %12 %13 -%27 = OpTypeVector %2 2 -%31 = OpTypeSampler -%33 = OpTypeSampledImage %13 -%36 = OpTypeFloat 32 -%32 = OpConstantSampler %31 None 0 Nearest -%37 = OpConstant %36 0 - %5 = OpVariable %4 UniformConstant %3 - %8 = OpVariable %7 UniformConstant - %9 = OpVariable %7 UniformConstant -%15 = OpFunction %10 None %14 -%16 = OpFunctionParameter %12 -%17 = OpFunctionParameter %13 -%18 = OpLabel -%28 = OpUndef %27 -%19 = OpLoad %6 %8 Aligned 0 -%20 = OpCompositeExtract %2 %19 0 -%21 = OpLoad %6 %8 Aligned 0 -%22 = OpCompositeExtract %2 %21 1 -%23 = OpLoad %6 %9 Aligned 0 -%24 = OpCompositeExtract %2 %23 0 -%25 = OpIMul %2 %24 %22 -%26 = OpIAdd %2 %25 %20 -%29 = OpCompositeInsert %27 %22 %28 0 -%30 = OpCompositeInsert %27 %20 %29 1 -%34 = OpSampledImage %33 %17 %32 -%35 = OpImageSampleExplicitLod %11 %34 %30 Lod %37 -%38 = OpInBoundsPtrAccessChain %12 %16 %26 - OpStore %38 %35 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_coherent.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_coherent.spvasm64 deleted file mode 100644 index 60604b24..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_coherent.spvasm64 +++ /dev/null @@ -1,88 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability ImageBasic - OpCapability LiteralSampler - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %16 "decorate_coherent" - OpName %5 "sampler" - OpName %9 "__spirv_BuiltInGlobalInvocationId" - OpName %10 "__spirv_BuiltInGlobalSize" - OpName %17 "dst" - OpName %18 "src" - OpName %19 "entry" - OpName %21 "call" - OpName %22 "conv" - OpName %24 "call1" - OpName %25 "conv2" - OpName %26 "conv3" - OpName %28 "call4" - OpName %29 "mul" - OpName %30 "add" - OpName %33 "vecinit" - OpName %34 "vecinit10" - OpName %38 "TempSampledImage" - OpName %39 "call11.old" - OpName %43 "sext" - OpName %44 "idxprom" - OpName %45 "arrayidx" - OpDecorate %18 Coherent - OpDecorate %46 Constant -%46 = OpDecorationGroup - OpDecorate %9 BuiltIn GlobalInvocationId - OpDecorate %10 BuiltIn GlobalSize - OpDecorate %17 FuncParamAttr NoCapture - OpDecorate %5 LinkageAttributes "sampler" Export - OpDecorate %10 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %9 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %5 Alignment 4 - OpGroupDecorate %46 %5 %9 %10 - %2 = OpTypeInt 32 0 - %6 = OpTypeInt 64 0 - %3 = OpConstant %2 16 -%42 = OpConstant %6 32 - %4 = OpTypePointer UniformConstant %2 - %7 = OpTypeVector %6 3 - %8 = OpTypePointer UniformConstant %7 -%11 = OpTypeVoid -%12 = OpTypeVector %2 4 -%13 = OpTypePointer CrossWorkgroup %12 -%14 = OpTypeImage %11 2D 0 0 0 0 Unknown -%15 = OpTypeFunction %11 %13 %14 -%31 = OpTypeVector %2 2 -%35 = OpTypeSampler -%37 = OpTypeSampledImage %14 -%40 = OpTypeFloat 32 -%36 = OpConstantSampler %35 None 0 Nearest -%41 = OpConstant %40 0 - %5 = OpVariable %4 UniformConstant %3 - %9 = OpVariable %8 UniformConstant -%10 = OpVariable %8 UniformConstant -%16 = OpFunction %11 None %15 -%17 = OpFunctionParameter %13 -%18 = OpFunctionParameter %14 -%19 = OpLabel -%32 = OpUndef %31 -%20 = OpLoad %7 %9 Aligned 0 -%21 = OpCompositeExtract %6 %20 0 -%22 = OpUConvert %2 %21 -%23 = OpLoad %7 %9 Aligned 0 -%24 = OpCompositeExtract %6 %23 1 -%25 = OpUConvert %2 %24 -%26 = OpSConvert %6 %25 -%27 = OpLoad %7 %10 Aligned 0 -%28 = OpCompositeExtract %6 %27 0 -%29 = OpIMul %6 %26 %28 -%30 = OpIAdd %6 %29 %21 -%33 = OpCompositeInsert %31 %25 %32 0 -%34 = OpCompositeInsert %31 %22 %33 1 -%38 = OpSampledImage %37 %18 %36 -%39 = OpImageSampleExplicitLod %12 %38 %34 Lod %41 -%43 = OpShiftLeftLogical %6 %30 %42 -%44 = OpShiftRightArithmetic %6 %43 %42 -%45 = OpInBoundsPtrAccessChain %13 %17 %44 - OpStore %45 %39 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_constant.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_constant.spvasm32 deleted file mode 100644 index 1f01838f..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_constant.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_constant" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Constant -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_constant.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_constant.spvasm64 deleted file mode 100644 index dff1925a..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_constant.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_constant" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Constant -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_constant_fail.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_constant_fail.spvasm32 deleted file mode 100644 index ab91da33..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_constant_fail.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_constant" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Constant -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_constant_fail.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_constant_fail.spvasm64 deleted file mode 100644 index 1c4bd986..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_constant_fail.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_constant" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Constant -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_cpacked.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_cpacked.spvasm32 deleted file mode 100644 index d8aa11d3..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_cpacked.spvasm32 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_cpacked" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %struct_t CPacked -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 127 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_cpacked.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_cpacked.spvasm64 deleted file mode 100644 index a4600c16..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_cpacked.spvasm64 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_cpacked" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %struct_t CPacked -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%int_val = OpConstant %int_t 2100483600 -%char_val = OpConstant %char_t 127 -%struct_val = OpConstantComposite %struct_t %int_val %char_val -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_nonreadable.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_nonreadable.spvasm32 deleted file mode 100644 index 8cc21d31..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_nonreadable.spvasm32 +++ /dev/null @@ -1,61 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability ImageBasic - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %12 "decorate_nonreadable" - OpSource OpenCL_C 100000 - OpName %5 "__spirv_BuiltInGlobalInvocationId" - OpName %6 "__spirv_BuiltInGlobalSize" - OpName %13 "dst" - OpName %14 "src" - OpName %15 "entry" - OpName %17 "call" - OpName %19 "call1" - OpName %21 "call2" - OpName %22 "mul" - OpName %23 "add" - OpName %26 "vecinit" - OpName %27 "vecinit3" - OpName %28 "arrayidx" - OpDecorate %13 NonReadable - OpDecorate %30 Constant -%30 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %6 BuiltIn GlobalSize - OpDecorate %14 FuncParamAttr NoCapture - OpDecorate %6 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %5 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %30 %5 %6 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %7 = OpTypeVoid - %8 = OpTypeImage %7 2D 0 0 0 0 Unknown WriteOnly - %9 = OpTypeVector %2 4 -%10 = OpTypePointer CrossWorkgroup %9 -%11 = OpTypeFunction %7 %8 %10 -%24 = OpTypeVector %2 2 - %5 = OpVariable %4 UniformConstant - %6 = OpVariable %4 UniformConstant -%12 = OpFunction %7 None %11 -%13 = OpFunctionParameter %8 -%14 = OpFunctionParameter %10 -%15 = OpLabel -%25 = OpUndef %24 -%16 = OpLoad %3 %5 Aligned 0 -%17 = OpCompositeExtract %2 %16 0 -%18 = OpLoad %3 %5 Aligned 0 -%19 = OpCompositeExtract %2 %18 1 -%20 = OpLoad %3 %6 Aligned 0 -%21 = OpCompositeExtract %2 %20 0 -%22 = OpIMul %2 %21 %19 -%23 = OpIAdd %2 %22 %17 -%26 = OpCompositeInsert %24 %19 %25 0 -%27 = OpCompositeInsert %24 %17 %26 1 -%28 = OpInBoundsPtrAccessChain %10 %14 %23 -%29 = OpLoad %9 %28 Aligned 16 - OpImageWrite %13 %27 %29 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_nonreadable.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_nonreadable.spvasm64 deleted file mode 100644 index 71b2a26b..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_nonreadable.spvasm64 +++ /dev/null @@ -1,74 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability ImageBasic - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %13 "decorate_nonreadable" - OpSource OpenCL_C 100000 - OpName %5 "__spirv_BuiltInGlobalInvocationId" - OpName %6 "__spirv_BuiltInGlobalSize" - OpName %14 "dst" - OpName %15 "src" - OpName %16 "entry" - OpName %18 "call" - OpName %19 "conv" - OpName %21 "call1" - OpName %22 "conv2" - OpName %23 "conv3" - OpName %25 "call4" - OpName %26 "mul" - OpName %27 "add" - OpName %30 "vecinit" - OpName %31 "vecinit7" - OpName %33 "sext" - OpName %34 "idxprom" - OpName %35 "arrayidx" - OpDecorate %14 NonReadable - OpDecorate %37 Constant -%37 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %6 BuiltIn GlobalSize - OpDecorate %15 FuncParamAttr NoCapture - OpDecorate %6 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %5 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %37 %5 %6 - %2 = OpTypeInt 64 0 - %9 = OpTypeInt 32 0 -%32 = OpConstant %2 32 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %7 = OpTypeVoid - %8 = OpTypeImage %7 2D 0 0 0 0 Unknown WriteOnly -%10 = OpTypeVector %9 4 -%11 = OpTypePointer CrossWorkgroup %10 -%12 = OpTypeFunction %7 %8 %11 -%28 = OpTypeVector %9 2 - %5 = OpVariable %4 UniformConstant - %6 = OpVariable %4 UniformConstant -%13 = OpFunction %7 None %12 -%14 = OpFunctionParameter %8 -%15 = OpFunctionParameter %11 -%16 = OpLabel -%29 = OpUndef %28 -%17 = OpLoad %3 %5 Aligned 0 -%18 = OpCompositeExtract %2 %17 0 -%19 = OpUConvert %9 %18 -%20 = OpLoad %3 %5 Aligned 0 -%21 = OpCompositeExtract %2 %20 1 -%22 = OpUConvert %9 %21 -%23 = OpSConvert %2 %22 -%24 = OpLoad %3 %6 Aligned 0 -%25 = OpCompositeExtract %2 %24 0 -%26 = OpIMul %2 %23 %25 -%27 = OpIAdd %2 %26 %18 -%30 = OpCompositeInsert %28 %22 %29 0 -%31 = OpCompositeInsert %28 %19 %30 1 -%33 = OpShiftLeftLogical %2 %27 %32 -%34 = OpShiftRightArithmetic %2 %33 %32 -%35 = OpInBoundsPtrAccessChain %11 %15 %34 -%36 = OpLoad %10 %35 Aligned 16 - OpImageWrite %14 %31 %36 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_nonwritable.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_nonwritable.spvasm32 deleted file mode 100644 index b7ae2793..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_nonwritable.spvasm32 +++ /dev/null @@ -1,75 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability ImageBasic - OpCapability LiteralSampler - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %15 "decorate_nonwritable" - OpName %5 "sampler" - OpName %8 "__spirv_BuiltInGlobalInvocationId" - OpName %9 "__spirv_BuiltInGlobalSize" - OpName %16 "dst" - OpName %17 "src" - OpName %18 "entry" - OpName %20 "call" - OpName %22 "call1" - OpName %24 "call2" - OpName %25 "mul" - OpName %26 "add" - OpName %29 "vecinit" - OpName %30 "vecinit6" - OpName %34 "TempSampledImage" - OpName %35 "call7.old" - OpName %38 "arrayidx" - OpDecorate %17 NonWritable - OpDecorate %39 Constant -%39 = OpDecorationGroup - OpDecorate %8 BuiltIn GlobalInvocationId - OpDecorate %9 BuiltIn GlobalSize - OpDecorate %16 FuncParamAttr NoCapture - OpDecorate %5 LinkageAttributes "sampler" Export - OpDecorate %9 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %8 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %5 Alignment 4 - OpGroupDecorate %39 %5 %8 %9 - %2 = OpTypeInt 32 0 - %3 = OpConstant %2 16 - %4 = OpTypePointer UniformConstant %2 - %6 = OpTypeVector %2 3 - %7 = OpTypePointer UniformConstant %6 -%10 = OpTypeVoid -%11 = OpTypeVector %2 4 -%12 = OpTypePointer CrossWorkgroup %11 -%13 = OpTypeImage %10 2D 0 0 0 0 Unknown ReadOnly -%14 = OpTypeFunction %10 %12 %13 -%27 = OpTypeVector %2 2 -%31 = OpTypeSampler -%33 = OpTypeSampledImage %13 -%36 = OpTypeFloat 32 -%32 = OpConstantSampler %31 None 0 Nearest -%37 = OpConstant %36 0 - %5 = OpVariable %4 UniformConstant %3 - %8 = OpVariable %7 UniformConstant - %9 = OpVariable %7 UniformConstant -%15 = OpFunction %10 None %14 -%16 = OpFunctionParameter %12 -%17 = OpFunctionParameter %13 -%18 = OpLabel -%28 = OpUndef %27 -%19 = OpLoad %6 %8 Aligned 0 -%20 = OpCompositeExtract %2 %19 0 -%21 = OpLoad %6 %8 Aligned 0 -%22 = OpCompositeExtract %2 %21 1 -%23 = OpLoad %6 %9 Aligned 0 -%24 = OpCompositeExtract %2 %23 0 -%25 = OpIMul %2 %24 %22 -%26 = OpIAdd %2 %25 %20 -%29 = OpCompositeInsert %27 %22 %28 0 -%30 = OpCompositeInsert %27 %20 %29 1 -%34 = OpSampledImage %33 %17 %32 -%35 = OpImageSampleExplicitLod %11 %34 %30 Lod %37 -%38 = OpInBoundsPtrAccessChain %12 %16 %26 - OpStore %38 %35 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_nonwritable.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_nonwritable.spvasm64 deleted file mode 100644 index fca00d84..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_nonwritable.spvasm64 +++ /dev/null @@ -1,88 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability ImageBasic - OpCapability LiteralSampler - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %16 "decorate_nonwritable" - OpName %5 "sampler" - OpName %9 "__spirv_BuiltInGlobalInvocationId" - OpName %10 "__spirv_BuiltInGlobalSize" - OpName %17 "dst" - OpName %18 "src" - OpName %19 "entry" - OpName %21 "call" - OpName %22 "conv" - OpName %24 "call1" - OpName %25 "conv2" - OpName %26 "conv3" - OpName %28 "call4" - OpName %29 "mul" - OpName %30 "add" - OpName %33 "vecinit" - OpName %34 "vecinit10" - OpName %38 "TempSampledImage" - OpName %39 "call11.old" - OpName %43 "sext" - OpName %44 "idxprom" - OpName %45 "arrayidx" - OpDecorate %18 NonWritable - OpDecorate %46 Constant -%46 = OpDecorationGroup - OpDecorate %9 BuiltIn GlobalInvocationId - OpDecorate %10 BuiltIn GlobalSize - OpDecorate %17 FuncParamAttr NoCapture - OpDecorate %5 LinkageAttributes "sampler" Export - OpDecorate %10 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %9 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %5 Alignment 4 - OpGroupDecorate %46 %5 %9 %10 - %2 = OpTypeInt 32 0 - %6 = OpTypeInt 64 0 - %3 = OpConstant %2 16 -%42 = OpConstant %6 32 - %4 = OpTypePointer UniformConstant %2 - %7 = OpTypeVector %6 3 - %8 = OpTypePointer UniformConstant %7 -%11 = OpTypeVoid -%12 = OpTypeVector %2 4 -%13 = OpTypePointer CrossWorkgroup %12 -%14 = OpTypeImage %11 2D 0 0 0 0 Unknown ReadOnly -%15 = OpTypeFunction %11 %13 %14 -%31 = OpTypeVector %2 2 -%35 = OpTypeSampler -%37 = OpTypeSampledImage %14 -%40 = OpTypeFloat 32 -%36 = OpConstantSampler %35 None 0 Nearest -%41 = OpConstant %40 0 - %5 = OpVariable %4 UniformConstant %3 - %9 = OpVariable %8 UniformConstant -%10 = OpVariable %8 UniformConstant -%16 = OpFunction %11 None %15 -%17 = OpFunctionParameter %13 -%18 = OpFunctionParameter %14 -%19 = OpLabel -%32 = OpUndef %31 -%20 = OpLoad %7 %9 Aligned 0 -%21 = OpCompositeExtract %6 %20 0 -%22 = OpUConvert %2 %21 -%23 = OpLoad %7 %9 Aligned 0 -%24 = OpCompositeExtract %6 %23 1 -%25 = OpUConvert %2 %24 -%26 = OpSConvert %6 %25 -%27 = OpLoad %7 %10 Aligned 0 -%28 = OpCompositeExtract %6 %27 0 -%29 = OpIMul %6 %26 %28 -%30 = OpIAdd %6 %29 %21 -%33 = OpCompositeInsert %31 %25 %32 0 -%34 = OpCompositeInsert %31 %22 %33 1 -%38 = OpSampledImage %37 %18 %36 -%39 = OpImageSampleExplicitLod %12 %38 %34 Lod %41 -%43 = OpShiftLeftLogical %6 %30 %42 -%44 = OpShiftRightArithmetic %6 %43 %42 -%45 = OpInBoundsPtrAccessChain %13 %17 %44 - OpStore %45 %39 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_restrict.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_restrict.spvasm32 deleted file mode 100644 index a8f002b5..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_restrict.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_restrict" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Restrict -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_restrict.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_restrict.spvasm64 deleted file mode 100644 index 470d8bed..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_restrict.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_restrict" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %dec_group Restrict -%dec_group = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec_group %res %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %int_ptr_t -%rhs = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %lhs %idx -%lhs_val = OpLoad %int_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %int_ptr_t %rhs %idx -%rhs_val = OpLoad %int_t %rhs_curr Aligned 4 -%res_val = OpIAdd %int_t %lhs_val %rhs_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_double_long.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_double_long.spvasm32 deleted file mode 100644 index 341f6d9e..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_double_long.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rte_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTE -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_double_long.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_double_long.spvasm64 deleted file mode 100644 index 3ec0b291..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_double_long.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rte_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTE -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_float_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_float_int.spvasm32 deleted file mode 100644 index d9ed3545..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_float_int.spvasm32 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rte_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTE -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_float_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_float_int.spvasm64 deleted file mode 100644 index 15cda593..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rte_float_int.spvasm64 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rte_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTE -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_double_long.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_double_long.spvasm32 deleted file mode 100644 index f314a0fd..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_double_long.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtn_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTN -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_double_long.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_double_long.spvasm64 deleted file mode 100644 index 419b8afa..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_double_long.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtn_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTN -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_float_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_float_int.spvasm32 deleted file mode 100644 index d5c1b854..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_float_int.spvasm32 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtn_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTN -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_float_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_float_int.spvasm64 deleted file mode 100644 index a66855f0..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtn_float_int.spvasm64 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtn_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTN -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_double_long.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_double_long.spvasm32 deleted file mode 100644 index abadb9b6..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_double_long.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtp_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTP -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_double_long.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_double_long.spvasm64 deleted file mode 100644 index 2e47c119..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_double_long.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtp_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTP -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_float_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_float_int.spvasm32 deleted file mode 100644 index bc3458af..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_float_int.spvasm32 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtp_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTP -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_float_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_float_int.spvasm64 deleted file mode 100644 index 59c11604..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtp_float_int.spvasm64 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtp_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTP -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_double_long.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_double_long.spvasm32 deleted file mode 100644 index 7bb34ddf..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_double_long.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtz_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTZ -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_double_long.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_double_long.spvasm64 deleted file mode 100644 index 90fbb2d5..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_double_long.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtz_double_long" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTZ -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 64 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_float_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_float_int.spvasm32 deleted file mode 100644 index fe726197..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_float_int.spvasm32 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtz_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val FPRoundingMode RTZ -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%res_val = OpConvertFToS %int_t %in_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_float_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_float_int.spvasm64 deleted file mode 100644 index f3dda3b8..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_rounding_rtz_float_int.spvasm64 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_rounding_rtz_float_int" - OpName %out "res" - OpName %in "in" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %out_val FPRoundingMode RTZ -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out = OpFunctionParameter %int_ptr_t -%in = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_curr = OpInBoundsPtrAccessChain %float_ptr_t %in %idx -%in_val = OpLoad %float_t %in_curr Aligned 4 -%out_val = OpConvertFToS %int_t %in_val -%out_curr = OpInBoundsPtrAccessChain %int_ptr_t %out %idx - OpStore %out_curr %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_char.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_char.spvasm32 deleted file mode 100644 index 58ac84aa..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_char.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_char" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 8 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_char.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_char.spvasm64 deleted file mode 100644 index 82d7cd5d..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_char.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_char" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 8 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_int.spvasm32 deleted file mode 100644 index d50fcaee..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_int.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_int" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_int.spvasm64 deleted file mode 100644 index 737aa0ab..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_int.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_int" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_short.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_short.spvasm32 deleted file mode 100644 index abff4a7b..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_short.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_short" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 16 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_short.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_short.spvasm64 deleted file mode 100644 index 54e82f47..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_short.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_short" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 16 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uchar.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uchar.spvasm32 deleted file mode 100644 index 2f9b5a9e..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uchar.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_uchar" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 8 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToU %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uchar.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uchar.spvasm64 deleted file mode 100644 index 77f6af0c..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uchar.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_uchar" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 8 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToU %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uint.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uint.spvasm32 deleted file mode 100644 index 352d61b5..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uint.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_uint" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToU %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uint.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uint.spvasm64 deleted file mode 100644 index 10067f8a..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_uint.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_uint" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 64 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToS %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_ushort.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_ushort.spvasm32 deleted file mode 100644 index bdc56e7d..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_ushort.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_ushort" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 16 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToU %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_ushort.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_ushort.spvasm64 deleted file mode 100644 index 81f341be..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_saturated_conversion_ushort.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "decorate_saturated_conversion_ushort" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpName %entry "entry" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %res_val SaturatedConversion -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 16 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %int_ptr_t %float_ptr_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %int_ptr_t -%lhs = OpFunctionParameter %float_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %lhs %idx -%lhs_val = OpLoad %float_t %lhs_curr Aligned 4 -%rhs_curr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_curr Aligned 4 -%float_val = OpFMul %float_t %lhs_val %rhs_val -%res_val = OpConvertFToU %int_t %float_val -%res_curr = OpInBoundsPtrAccessChain %int_ptr_t %res %idx - OpStore %res_curr %res_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_volatile.spvasm32 b/test_conformance/spirv_new/spirv_txt/decorate_volatile.spvasm32 deleted file mode 100644 index c86b54b0..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_volatile.spvasm32 +++ /dev/null @@ -1,75 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability ImageBasic - OpCapability LiteralSampler - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %15 "decorate_volatile" - OpName %5 "sampler" - OpName %8 "__spirv_BuiltInGlobalInvocationId" - OpName %9 "__spirv_BuiltInGlobalSize" - OpName %16 "dst" - OpName %17 "src" - OpName %18 "entry" - OpName %20 "call" - OpName %22 "call1" - OpName %24 "call2" - OpName %25 "mul" - OpName %26 "add" - OpName %29 "vecinit" - OpName %30 "vecinit6" - OpName %34 "TempSampledImage" - OpName %35 "call7.old" - OpName %38 "arrayidx" - OpDecorate %17 Volatile - OpDecorate %39 Constant -%39 = OpDecorationGroup - OpDecorate %8 BuiltIn GlobalInvocationId - OpDecorate %9 BuiltIn GlobalSize - OpDecorate %16 FuncParamAttr NoCapture - OpDecorate %5 LinkageAttributes "sampler" Export - OpDecorate %9 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %8 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %5 Alignment 4 - OpGroupDecorate %39 %5 %8 %9 - %2 = OpTypeInt 32 0 - %3 = OpConstant %2 16 - %4 = OpTypePointer UniformConstant %2 - %6 = OpTypeVector %2 3 - %7 = OpTypePointer UniformConstant %6 -%10 = OpTypeVoid -%11 = OpTypeVector %2 4 -%12 = OpTypePointer CrossWorkgroup %11 -%13 = OpTypeImage %10 2D 0 0 0 0 Unknown -%14 = OpTypeFunction %10 %12 %13 -%27 = OpTypeVector %2 2 -%31 = OpTypeSampler -%33 = OpTypeSampledImage %13 -%36 = OpTypeFloat 32 -%32 = OpConstantSampler %31 None 0 Nearest -%37 = OpConstant %36 0 - %5 = OpVariable %4 UniformConstant %3 - %8 = OpVariable %7 UniformConstant - %9 = OpVariable %7 UniformConstant -%15 = OpFunction %10 None %14 -%16 = OpFunctionParameter %12 -%17 = OpFunctionParameter %13 -%18 = OpLabel -%28 = OpUndef %27 -%19 = OpLoad %6 %8 Aligned 0 -%20 = OpCompositeExtract %2 %19 0 -%21 = OpLoad %6 %8 Aligned 0 -%22 = OpCompositeExtract %2 %21 1 -%23 = OpLoad %6 %9 Aligned 0 -%24 = OpCompositeExtract %2 %23 0 -%25 = OpIMul %2 %24 %22 -%26 = OpIAdd %2 %25 %20 -%29 = OpCompositeInsert %27 %22 %28 0 -%30 = OpCompositeInsert %27 %20 %29 1 -%34 = OpSampledImage %33 %17 %32 -%35 = OpImageSampleExplicitLod %11 %34 %30 Lod %37 -%38 = OpInBoundsPtrAccessChain %12 %16 %26 - OpStore %38 %35 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/decorate_volatile.spvasm64 b/test_conformance/spirv_new/spirv_txt/decorate_volatile.spvasm64 deleted file mode 100644 index 0f32fba4..00000000 --- a/test_conformance/spirv_new/spirv_txt/decorate_volatile.spvasm64 +++ /dev/null @@ -1,88 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability ImageBasic - OpCapability LiteralSampler - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %16 "decorate_volatile" - OpName %5 "sampler" - OpName %9 "__spirv_BuiltInGlobalInvocationId" - OpName %10 "__spirv_BuiltInGlobalSize" - OpName %17 "dst" - OpName %18 "src" - OpName %19 "entry" - OpName %21 "call" - OpName %22 "conv" - OpName %24 "call1" - OpName %25 "conv2" - OpName %26 "conv3" - OpName %28 "call4" - OpName %29 "mul" - OpName %30 "add" - OpName %33 "vecinit" - OpName %34 "vecinit10" - OpName %38 "TempSampledImage" - OpName %39 "call11.old" - OpName %43 "sext" - OpName %44 "idxprom" - OpName %45 "arrayidx" - OpDecorate %18 Volatile - OpDecorate %46 Constant -%46 = OpDecorationGroup - OpDecorate %9 BuiltIn GlobalInvocationId - OpDecorate %10 BuiltIn GlobalSize - OpDecorate %17 FuncParamAttr NoCapture - OpDecorate %5 LinkageAttributes "sampler" Export - OpDecorate %10 LinkageAttributes "__spirv_BuiltInGlobalSize" Import - OpDecorate %9 LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %5 Alignment 4 - OpGroupDecorate %46 %5 %9 %10 - %2 = OpTypeInt 32 0 - %6 = OpTypeInt 64 0 - %3 = OpConstant %2 16 -%42 = OpConstant %6 32 - %4 = OpTypePointer UniformConstant %2 - %7 = OpTypeVector %6 3 - %8 = OpTypePointer UniformConstant %7 -%11 = OpTypeVoid -%12 = OpTypeVector %2 4 -%13 = OpTypePointer CrossWorkgroup %12 -%14 = OpTypeImage %11 2D 0 0 0 0 Unknown -%15 = OpTypeFunction %11 %13 %14 -%31 = OpTypeVector %2 2 -%35 = OpTypeSampler -%37 = OpTypeSampledImage %14 -%40 = OpTypeFloat 32 -%36 = OpConstantSampler %35 None 0 Nearest -%41 = OpConstant %40 0 - %5 = OpVariable %4 UniformConstant %3 - %9 = OpVariable %8 UniformConstant -%10 = OpVariable %8 UniformConstant -%16 = OpFunction %11 None %15 -%17 = OpFunctionParameter %13 -%18 = OpFunctionParameter %14 -%19 = OpLabel -%32 = OpUndef %31 -%20 = OpLoad %7 %9 Aligned 0 -%21 = OpCompositeExtract %6 %20 0 -%22 = OpUConvert %2 %21 -%23 = OpLoad %7 %9 Aligned 0 -%24 = OpCompositeExtract %6 %23 1 -%25 = OpUConvert %2 %24 -%26 = OpSConvert %6 %25 -%27 = OpLoad %7 %10 Aligned 0 -%28 = OpCompositeExtract %6 %27 0 -%29 = OpIMul %6 %26 %28 -%30 = OpIAdd %6 %29 %21 -%33 = OpCompositeInsert %31 %25 %32 0 -%34 = OpCompositeInsert %31 %22 %33 1 -%38 = OpSampledImage %37 %18 %36 -%39 = OpImageSampleExplicitLod %12 %38 %34 Lod %41 -%43 = OpShiftLeftLogical %6 %30 %42 -%44 = OpShiftRightArithmetic %6 %43 %42 -%45 = OpInBoundsPtrAccessChain %13 %17 %44 - OpStore %45 %39 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm32 deleted file mode 100644 index b4993029..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm32 +++ /dev/null @@ -1,49 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 25 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %24 FuncParamAttr NoWrite - %24 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %22 NoSignedWrap - OpGroupDecorate %24 %lhs %rhs - %uint = OpTypeInt 32 0 - %uint_31 = OpConstant %uint 31 - %v3uint = OpTypeVector %uint 3 -%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 - %19 = OpLoad %uint %18 Aligned 4 - %21 = OpBitwiseAnd %uint %19 %uint_31 - %22 = OpShiftLeftLogical %uint %17 %21 - %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %23 %22 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm64 deleted file mode 100644 index eaac7975..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_int.spvasm64 +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 30 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %29 FuncParamAttr NoWrite - %29 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %26 NoSignedWrap - OpGroupDecorate %29 %lhs %rhs - %ulong = OpTypeInt 64 0 - %uint = OpTypeInt 32 0 - %uint_31 = OpConstant %uint 31 - %v3ulong = OpTypeVector %ulong 3 -%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 - %23 = OpLoad %uint %22 Aligned 4 - %25 = OpBitwiseAnd %uint %23 %uint_31 - %26 = OpShiftLeftLogical %uint %20 %25 - %27 = OpSConvert %ulong %17 - %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %27 - OpStore %28 %26 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm32 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm32 deleted file mode 100644 index be3cbd10..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm32 +++ /dev/null @@ -1,49 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 25 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %24 FuncParamAttr NoWrite - %24 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %22 NoUnsignedWrap - OpGroupDecorate %24 %lhs %rhs - %uint = OpTypeInt 32 0 - %uint_31 = OpConstant %uint 31 - %v3uint = OpTypeVector %uint 3 -%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 - %19 = OpLoad %uint %18 Aligned 4 - %21 = OpBitwiseAnd %uint %19 %uint_31 - %22 = OpShiftLeftLogical %uint %17 %21 - %23 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %23 %22 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm64 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm64 deleted file mode 100644 index 92c1b68a..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fshiftleft_uint.spvasm64 +++ /dev/null @@ -1,55 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 30 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %29 FuncParamAttr NoWrite - %29 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpDecorate %26 NoUnsignedWrap - OpGroupDecorate %29 %lhs %rhs - %ulong = OpTypeInt 64 0 - %uint = OpTypeInt 32 0 - %uint_31 = OpConstant %uint 31 - %v3ulong = OpTypeVector %ulong 3 -%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 - %23 = OpLoad %uint %22 Aligned 4 - %25 = OpBitwiseAnd %uint %23 %uint_31 - %26 = OpShiftLeftLogical %uint %20 %25 - %27 = OpSConvert %ulong %17 - %28 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %27 - OpStore %28 %26 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm32 deleted file mode 100644 index af43596a..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm32 +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 23 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %22 FuncParamAttr NoWrite - %22 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %22 %lhs %rhs - OpDecorate %20 NoSignedWrap - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 - %19 = OpLoad %uint %18 Aligned 4 - %20 = OpISub %uint %17 %19 - %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %21 %20 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm64 deleted file mode 100644 index 8c60c5dd..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_int.spvasm64 +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 28 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %27 FuncParamAttr NoWrite - %27 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %27 %lhs %rhs - OpDecorate %24 NoSignedWrap - %ulong = OpTypeInt 64 0 - %uint = OpTypeInt 32 0 - %v3ulong = OpTypeVector %ulong 3 -%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 - %23 = OpLoad %uint %22 Aligned 4 - %24 = OpISub %uint %20 %23 - %25 = OpSConvert %ulong %17 - %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %25 - OpStore %26 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm32 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm32 deleted file mode 100644 index bbf232b9..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm32 +++ /dev/null @@ -1,47 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 23 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %9 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %22 FuncParamAttr NoWrite - %22 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %22 %lhs %rhs - OpDecorate %20 NoUnsignedWrap - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 -%_ptr_UniformConstant_v3uint = OpTypePointer UniformConstant %v3uint - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %8 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3uint UniformConstant - %9 = OpFunction %void None %8 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %13 = OpLabel - %14 = OpLoad %v3uint %__spirv_BuiltInGlobalInvocationId - %15 = OpCompositeExtract %uint %14 0 - %16 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %15 - %17 = OpLoad %uint %16 Aligned 4 - %18 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %15 - %19 = OpLoad %uint %18 Aligned 4 - %20 = OpISub %uint %17 %19 - %21 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %15 - OpStore %21 %20 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm64 b/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm64 deleted file mode 100644 index f4245add..00000000 --- a/test_conformance/spirv_new/spirv_txt/ext_cl_khr_spirv_no_integer_wrap_decoration_fsub_uint.spvasm64 +++ /dev/null @@ -1,53 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Khronos LLVM/SPIR-V Translator; 14 -; Bound: 28 -; Schema: 0 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_cl" - OpSource OpenCL_C 200000 - OpExtension "SPV_KHR_no_integer_wrap_decoration" - OpName %__spirv_BuiltInGlobalInvocationId "__spirv_BuiltInGlobalInvocationId" - OpName %out "out" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %27 FuncParamAttr NoWrite - %27 = OpDecorationGroup - OpDecorate %__spirv_BuiltInGlobalInvocationId BuiltIn GlobalInvocationId - OpDecorate %__spirv_BuiltInGlobalInvocationId Constant - OpDecorate %__spirv_BuiltInGlobalInvocationId LinkageAttributes "__spirv_BuiltInGlobalInvocationId" Import - OpGroupDecorate %27 %lhs %rhs - OpDecorate %24 NoUnsignedWrap - %ulong = OpTypeInt 64 0 - %uint = OpTypeInt 32 0 - %v3ulong = OpTypeVector %ulong 3 -%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong - %void = OpTypeVoid -%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint - %9 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint -%__spirv_BuiltInGlobalInvocationId = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant - %10 = OpFunction %void None %9 - %out = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint - %14 = OpLabel - %15 = OpLoad %v3ulong %__spirv_BuiltInGlobalInvocationId - %16 = OpCompositeExtract %ulong %15 0 - %17 = OpUConvert %uint %16 - %18 = OpSConvert %ulong %17 - %19 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %18 - %20 = OpLoad %uint %19 Aligned 4 - %21 = OpSConvert %ulong %17 - %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21 - %23 = OpLoad %uint %22 Aligned 4 - %24 = OpISub %uint %20 %23 - %25 = OpSConvert %ulong %17 - %26 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %out %25 - OpStore %26 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/fadd_double.spvasm32 deleted file mode 100644 index 89095c1e..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 8 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 8 -%21 = OpFAdd %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/fadd_double.spvasm64 deleted file mode 100644 index 5157bdb2..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 8 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 8 -%24 = OpFAdd %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_double2.spvasm32 b/test_conformance/spirv_new/spirv_txt/fadd_double2.spvasm32 deleted file mode 100644 index 3ec0b375..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_double2.spvasm32 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %72 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %72 %19 Aligned 16 -%21 = OpFAdd %72 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_double2.spvasm64 b/test_conformance/spirv_new/spirv_txt/fadd_double2.spvasm64 deleted file mode 100644 index d7c811c8..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_double2.spvasm64 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %72 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %72 %22 Aligned 16 -%24 = OpFAdd %72 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/fadd_float.spvasm32 deleted file mode 100644 index 82d84e0b..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_float.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 4 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 4 -%21 = OpFAdd %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/fadd_float.spvasm64 deleted file mode 100644 index c13094a3..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_float.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 4 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 4 -%24 = OpFAdd %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/fadd_float4.spvasm32 deleted file mode 100644 index 1f831368..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_float4.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %74 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %74 %19 Aligned 16 -%21 = OpFAdd %74 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/fadd_float4.spvasm64 deleted file mode 100644 index eb7ecd5c..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_float4.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %74 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %74 %22 Aligned 16 -%24 = OpFAdd %74 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_half.spvasm32 b/test_conformance/spirv_new/spirv_txt/fadd_half.spvasm32 deleted file mode 100644 index ab351a61..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_half.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 -%21 = OpFAdd %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fadd_half.spvasm64 b/test_conformance/spirv_new/spirv_txt/fadd_half.spvasm64 deleted file mode 100644 index fd60259e..00000000 --- a/test_conformance/spirv_new/spirv_txt/fadd_half.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 -%24 = OpFAdd %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/fdiv_double.spvasm32 deleted file mode 100644 index bc73e689..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 8 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 8 -%21 = OpFDiv %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/fdiv_double.spvasm64 deleted file mode 100644 index c3abc9c0..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 8 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 8 -%24 = OpFDiv %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_double2.spvasm32 b/test_conformance/spirv_new/spirv_txt/fdiv_double2.spvasm32 deleted file mode 100644 index 9bad4fa5..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_double2.spvasm32 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %72 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %72 %19 Aligned 16 -%21 = OpFDiv %72 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_double2.spvasm64 b/test_conformance/spirv_new/spirv_txt/fdiv_double2.spvasm64 deleted file mode 100644 index 660370c0..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_double2.spvasm64 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %72 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %72 %22 Aligned 16 -%24 = OpFDiv %72 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/fdiv_float.spvasm32 deleted file mode 100644 index f00aae44..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_float.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 4 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 4 -%21 = OpFDiv %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/fdiv_float.spvasm64 deleted file mode 100644 index 903eeedc..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_float.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 4 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 4 -%24 = OpFDiv %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/fdiv_float4.spvasm32 deleted file mode 100644 index 7b81eab3..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_float4.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %74 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %74 %19 Aligned 16 -%21 = OpFDiv %74 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/fdiv_float4.spvasm64 deleted file mode 100644 index 84156f48..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_float4.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %74 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %74 %22 Aligned 16 -%24 = OpFDiv %74 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_half.spvasm32 b/test_conformance/spirv_new/spirv_txt/fdiv_half.spvasm32 deleted file mode 100644 index 3c455c83..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_half.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 -%21 = OpFDiv %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fdiv_half.spvasm64 b/test_conformance/spirv_new/spirv_txt/fdiv_half.spvasm64 deleted file mode 100644 index a5b77a06..00000000 --- a/test_conformance/spirv_new/spirv_txt/fdiv_half.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 -%24 = OpFDiv %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmod_double.spvasm32 deleted file mode 100644 index fc3478cd..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 8 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 8 -%21 = OpFMod %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmod_double.spvasm64 deleted file mode 100644 index ec9cf22f..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 8 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 8 -%24 = OpFMod %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_double2.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmod_double2.spvasm32 deleted file mode 100644 index 52016890..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_double2.spvasm32 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %72 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %72 %19 Aligned 16 -%21 = OpFMod %72 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_double2.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmod_double2.spvasm64 deleted file mode 100644 index 197313ee..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_double2.spvasm64 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %72 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %72 %22 Aligned 16 -%24 = OpFMod %72 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmod_float.spvasm32 deleted file mode 100644 index bdcbc288..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_float.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 4 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 4 -%21 = OpFMod %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmod_float.spvasm64 deleted file mode 100644 index ccdb529a..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_float.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 4 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 4 -%24 = OpFMod %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmod_float4.spvasm32 deleted file mode 100644 index aa9a6fdf..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_float4.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %74 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %74 %19 Aligned 16 -%21 = OpFMod %74 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmod_float4.spvasm64 deleted file mode 100644 index 1ec4ba08..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_float4.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %74 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %74 %22 Aligned 16 -%24 = OpFMod %74 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_half.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmod_half.spvasm32 deleted file mode 100644 index 86f00ca2..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_half.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 -%21 = OpFMod %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmod_half.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmod_half.spvasm64 deleted file mode 100644 index e7513d5a..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmod_half.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 -%24 = OpFMod %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmul_double.spvasm32 deleted file mode 100644 index bfd8f688..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 8 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 8 -%21 = OpFMul %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmul_double.spvasm64 deleted file mode 100644 index aaed39b5..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 8 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 8 -%24 = OpFMul %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_double2.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmul_double2.spvasm32 deleted file mode 100644 index 43606f3a..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_double2.spvasm32 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %72 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %72 %19 Aligned 16 -%21 = OpFMul %72 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_double2.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmul_double2.spvasm64 deleted file mode 100644 index 58314895..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_double2.spvasm64 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %72 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %72 %22 Aligned 16 -%24 = OpFMul %72 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmul_float.spvasm32 deleted file mode 100644 index 4a7439aa..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_float.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 4 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 4 -%21 = OpFMul %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmul_float.spvasm64 deleted file mode 100644 index 11e72097..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_float.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 4 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 4 -%24 = OpFMul %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmul_float4.spvasm32 deleted file mode 100644 index 0ddcf0d9..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_float4.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %74 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %74 %19 Aligned 16 -%21 = OpFMul %74 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmul_float4.spvasm64 deleted file mode 100644 index 0d656e09..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_float4.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %74 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %74 %22 Aligned 16 -%24 = OpFMul %74 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_half.spvasm32 b/test_conformance/spirv_new/spirv_txt/fmul_half.spvasm32 deleted file mode 100644 index 0aa2d7b8..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_half.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 -%21 = OpFMul %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fmul_half.spvasm64 b/test_conformance/spirv_new/spirv_txt/fmul_half.spvasm64 deleted file mode 100644 index 56b52b6f..00000000 --- a/test_conformance/spirv_new/spirv_txt/fmul_half.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 -%24 = OpFMul %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/frem_double.spvasm32 deleted file mode 100644 index 782e1cad..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 8 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 8 -%21 = OpFRem %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/frem_double.spvasm64 deleted file mode 100644 index 76e03c3c..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 8 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 8 -%24 = OpFRem %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_double2.spvasm32 b/test_conformance/spirv_new/spirv_txt/frem_double2.spvasm32 deleted file mode 100644 index 271615af..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_double2.spvasm32 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %72 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %72 %19 Aligned 16 -%21 = OpFRem %72 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_double2.spvasm64 b/test_conformance/spirv_new/spirv_txt/frem_double2.spvasm64 deleted file mode 100644 index 2d09838e..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_double2.spvasm64 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %72 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %72 %22 Aligned 16 -%24 = OpFRem %72 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/frem_float.spvasm32 deleted file mode 100644 index 133fe786..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_float.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 4 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 4 -%21 = OpFRem %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/frem_float.spvasm64 deleted file mode 100644 index 5a5e9078..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_float.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 4 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 4 -%24 = OpFRem %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/frem_float4.spvasm32 deleted file mode 100644 index 8e5032cc..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_float4.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %74 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %74 %19 Aligned 16 -%21 = OpFRem %74 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/frem_float4.spvasm64 deleted file mode 100644 index 5e8deb09..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_float4.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %74 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %74 %22 Aligned 16 -%24 = OpFRem %74 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_half.spvasm32 b/test_conformance/spirv_new/spirv_txt/frem_half.spvasm32 deleted file mode 100644 index 3b0a79e8..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_half.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 -%21 = OpFRem %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/frem_half.spvasm64 b/test_conformance/spirv_new/spirv_txt/frem_half.spvasm64 deleted file mode 100644 index 774d96d1..00000000 --- a/test_conformance/spirv_new/spirv_txt/frem_half.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 -%24 = OpFRem %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/fsub_double.spvasm32 deleted file mode 100644 index 24e3d60f..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 8 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 8 -%21 = OpFSub %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/fsub_double.spvasm64 deleted file mode 100644 index ce2fce68..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 8 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 8 -%24 = OpFSub %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 8 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_double2.spvasm32 b/test_conformance/spirv_new/spirv_txt/fsub_double2.spvasm32 deleted file mode 100644 index 738f7479..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_double2.spvasm32 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %72 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %72 %19 Aligned 16 -%21 = OpFSub %72 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_double2.spvasm64 b/test_conformance/spirv_new/spirv_txt/fsub_double2.spvasm64 deleted file mode 100644 index 3e010b2f..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_double2.spvasm64 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Float64 - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 64 -%72 = OpTypeVector %7 2 - %8 = OpTypePointer CrossWorkgroup %72 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %72 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %72 %22 Aligned 16 -%24 = OpFSub %72 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/fsub_float.spvasm32 deleted file mode 100644 index 48200b66..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_float.spvasm32 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 Aligned 4 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 Aligned 4 -%21 = OpFSub %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/fsub_float.spvasm64 deleted file mode 100644 index ccfc8619..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_float.spvasm64 +++ /dev/null @@ -1,44 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 Aligned 4 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 Aligned 4 -%24 = OpFSub %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/fsub_float4.spvasm32 deleted file mode 100644 index e3ad63e0..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_float4.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %74 %17 Aligned 16 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %74 %19 Aligned 16 -%21 = OpFSub %74 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/fsub_float4.spvasm64 deleted file mode 100644 index 65615bdc..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_float4.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 32 -%74 = OpTypeVector %7 4 - %8 = OpTypePointer CrossWorkgroup %74 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %74 %20 Aligned 16 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %74 %22 Aligned 16 -%24 = OpFSub %74 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_half.spvasm32 b/test_conformance/spirv_new/spirv_txt/fsub_half.spvasm32 deleted file mode 100644 index 3531c662..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_half.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %23 FuncParamAttr NoCapture -%23 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %23 %11 %12 %13 - %2 = OpTypeInt 32 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%17 = OpInBoundsPtrAccessChain %8 %12 %16 -%18 = OpLoad %7 %17 -%19 = OpInBoundsPtrAccessChain %8 %13 %16 -%20 = OpLoad %7 %19 -%21 = OpFSub %7 %18 %20 -%22 = OpInBoundsPtrAccessChain %8 %11 %16 - OpStore %22 %21 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/fsub_half.spvasm64 b/test_conformance/spirv_new/spirv_txt/fsub_half.spvasm64 deleted file mode 100644 index b9335f9b..00000000 --- a/test_conformance/spirv_new/spirv_txt/fsub_half.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - %1 = OpExtInstImport "OpenCL.std" - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %10 "fmath_spv" - OpName %11 "res" - OpName %12 "lhs" - OpName %13 "rhs" - OpName %14 "entry" - OpDecorate %26 FuncParamAttr NoCapture -%26 = OpDecorationGroup - OpDecorate %5 BuiltIn GlobalInvocationId - OpDecorate %5 Constant - OpDecorate %5 LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %26 %11 %12 %13 - %2 = OpTypeInt 64 0 - %3 = OpTypeVector %2 3 - %4 = OpTypePointer UniformConstant %3 - %6 = OpTypeVoid - %7 = OpTypeFloat 16 - %8 = OpTypePointer CrossWorkgroup %7 - %9 = OpTypeFunction %6 %8 %8 %8 -%17 = OpConstant %2 32 - %5 = OpVariable %4 UniformConstant -%10 = OpFunction %6 None %9 -%11 = OpFunctionParameter %8 -%12 = OpFunctionParameter %8 -%13 = OpFunctionParameter %8 -%14 = OpLabel -%15 = OpLoad %3 %5 Aligned 0 -%16 = OpCompositeExtract %2 %15 0 -%18 = OpShiftLeftLogical %2 %16 %17 -%19 = OpShiftRightArithmetic %2 %18 %17 -%20 = OpInBoundsPtrAccessChain %8 %12 %19 -%21 = OpLoad %7 %20 -%22 = OpInBoundsPtrAccessChain %8 %13 %19 -%23 = OpLoad %7 %22 -%24 = OpFSub %7 %21 %23 -%25 = OpInBoundsPtrAccessChain %8 %11 %19 - OpStore %25 %24 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/label_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/label_simple.spvasm32 deleted file mode 100644 index cddd1dcc..00000000 --- a/test_conformance/spirv_new/spirv_txt/label_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "label_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%outptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current_in = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%current_out = OpInBoundsPtrAccessChain %int_ptr_t %outptr %idx -%val = OpLoad %int_t %current_in - OpStore %current_out %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/label_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/label_simple.spvasm64 deleted file mode 100644 index 36724fb8..00000000 --- a/test_conformance/spirv_new/spirv_txt/label_simple.spvasm64 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "label_simple" - OpName %inptr "in" - OpName %outptr "out" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%outptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current_in = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%current_out = OpInBoundsPtrAccessChain %int_ptr_t %outptr %idx -%val = OpLoad %int_t %current_in - OpStore %current_out %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/lifetime_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/lifetime_simple.spvasm32 deleted file mode 100644 index bdac8db4..00000000 --- a/test_conformance/spirv_new/spirv_txt/lifetime_simple.spvasm32 +++ /dev/null @@ -1,46 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "lifetime_simple" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%tmp = OpVariable %tmp_ptr_t Function -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%sub_val = OpISub %int_t %lhs_val %rhs_val - OpLifetimeStart %tmp 0 - OpStore %tmp %sub_val -%out_val = OpLoad %int_t %tmp - OpLifetimeStop %tmp 0 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/lifetime_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/lifetime_simple.spvasm64 deleted file mode 100644 index 3a9d39aa..00000000 --- a/test_conformance/spirv_new/spirv_txt/lifetime_simple.spvasm64 +++ /dev/null @@ -1,50 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "lifetime_simple" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%tmp = OpVariable %tmp_ptr_t Function -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%sub_val = OpISub %int_t %lhs_val %rhs_val - OpLifetimeStart %tmp 0 - OpStore %tmp %sub_val -%out_val = OpLoad %int_t %tmp - OpLifetimeStop %tmp 0 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/linkage_export.spvasm32 b/test_conformance/spirv_new/spirv_txt/linkage_export.spvasm32 deleted file mode 100644 index 3f715805..00000000 --- a/test_conformance/spirv_new/spirv_txt/linkage_export.spvasm32 +++ /dev/null @@ -1,15 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpName %local_func "simple_fnegate_linkage" - OpDecorate %local_func LinkageAttributes "simple_fnegate_linkage" Export -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%local_func_t = OpTypeFunction %float_t %float_t -%local_func = OpFunction %float_t Const %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/linkage_export.spvasm64 b/test_conformance/spirv_new/spirv_txt/linkage_export.spvasm64 deleted file mode 100644 index a76618b2..00000000 --- a/test_conformance/spirv_new/spirv_txt/linkage_export.spvasm64 +++ /dev/null @@ -1,15 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical64 OpenCL - OpName %local_func "simple_fnegate_linkage" - OpDecorate %local_func LinkageAttributes "simple_fnegate_linkage" Export -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%local_func_t = OpTypeFunction %float_t %float_t -%local_func = OpFunction %float_t Const %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/linkage_import.spvasm32 b/test_conformance/spirv_new/spirv_txt/linkage_import.spvasm32 deleted file mode 100644 index f2364969..00000000 --- a/test_conformance/spirv_new/spirv_txt/linkage_import.spvasm32 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "test_linkage" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %local_func LinkageAttributes "simple_fnegate_linkage" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Const %local_func_t -%local_in = OpFunctionParameter %float_t - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/linkage_import.spvasm64 b/test_conformance/spirv_new/spirv_txt/linkage_import.spvasm64 deleted file mode 100644 index bc3f9403..00000000 --- a/test_conformance/spirv_new/spirv_txt/linkage_import.spvasm64 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "test_linkage" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %local_func LinkageAttributes "simple_fnegate_linkage" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Const %local_func_t -%local_in = OpFunctionParameter %float_t - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_dont_unroll.spvasm32 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_dont_unroll.spvasm32 deleted file mode 100644 index 141c33d7..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_dont_unroll.spvasm32 +++ /dev/null @@ -1,67 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_conditional_dont_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpLoopMerge %block_end %block_cont DontUnroll - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_dont_unroll.spvasm64 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_dont_unroll.spvasm64 deleted file mode 100644 index 99b01596..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_dont_unroll.spvasm64 +++ /dev/null @@ -1,71 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_conditional_dont_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpLoopMerge %block_end %block_cont DontUnroll - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_none.spvasm32 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_none.spvasm32 deleted file mode 100644 index ad91cba3..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_none.spvasm32 +++ /dev/null @@ -1,67 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_conditional_none" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpLoopMerge %block_end %block_cont None - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_none.spvasm64 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_none.spvasm64 deleted file mode 100644 index 867aeb21..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_none.spvasm64 +++ /dev/null @@ -1,71 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_conditional_none" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpLoopMerge %block_end %block_cont None - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_unroll.spvasm32 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_unroll.spvasm32 deleted file mode 100644 index 2c4ed91c..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_unroll.spvasm32 +++ /dev/null @@ -1,67 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_conditional_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpLoopMerge %block_end %block_cont Unroll - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_unroll.spvasm64 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_unroll.spvasm64 deleted file mode 100644 index da3ccd76..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_conditional_unroll.spvasm64 +++ /dev/null @@ -1,71 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_conditional_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpLoopMerge %block_end %block_cont Unroll - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_dont_unroll.spvasm32 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_dont_unroll.spvasm32 deleted file mode 100644 index 0e981b3b..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_dont_unroll.spvasm32 +++ /dev/null @@ -1,69 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_dont_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel - OpLoopMerge %block_end %block_cont DontUnroll - OpBranch %block_check -%block_check = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_dont_unroll.spvasm64 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_dont_unroll.spvasm64 deleted file mode 100644 index b7022fce..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_dont_unroll.spvasm64 +++ /dev/null @@ -1,73 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_dont_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel - OpLoopMerge %block_end %block_cont DontUnroll - OpBranch %block_check -%block_check = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_none.spvasm32 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_none.spvasm32 deleted file mode 100644 index 89711e43..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_none.spvasm32 +++ /dev/null @@ -1,69 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_none" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel - OpLoopMerge %block_end %block_cont None - OpBranch %block_check -%block_check = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_none.spvasm64 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_none.spvasm64 deleted file mode 100644 index ce1fad65..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_none.spvasm64 +++ /dev/null @@ -1,73 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_none" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel - OpLoopMerge %block_end %block_cont None - OpBranch %block_check -%block_check = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_unroll.spvasm32 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_unroll.spvasm32 deleted file mode 100644 index b6497816..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_unroll.spvasm32 +++ /dev/null @@ -1,69 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel - OpLoopMerge %block_end %block_cont Unroll - OpBranch %block_check -%block_check = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_unroll.spvasm64 b/test_conformance/spirv_new/spirv_txt/loop_merge_branch_unroll.spvasm64 deleted file mode 100644 index ee8cc809..00000000 --- a/test_conformance/spirv_new/spirv_txt/loop_merge_branch_unroll.spvasm64 +++ /dev/null @@ -1,73 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "loop_merge_branch_unroll" - OpName %out_ptr "res" - OpName %in_ptr "in" - OpName %rep_val "rep" - OpName %num_val "num" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %in_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_t %int_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%in_ptr = OpFunctionParameter %int_ptr_t -%rep_val = OpFunctionParameter %int_t -%num_val = OpFunctionParameter %int_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%idx_int = OpSConvert %int_t %idx -%tmp_val_ptr = OpVariable %tmp_ptr_t Function -%tmp_idx_ptr = OpVariable %tmp_ptr_t Function - OpStore %tmp_val_ptr %int_zero Aligned 4 - OpStore %tmp_idx_ptr %int_zero Aligned 4 - OpBranch %block_loop -%block_loop = OpLabel - OpLoopMerge %block_end %block_cont Unroll - OpBranch %block_check -%block_check = OpLabel -%tmp_idx = OpLoad %int_t %tmp_idx_ptr -%compare = OpSLessThan %bool_t %tmp_idx %rep_val - OpBranchConditional %compare %block_calc %block_end -%block_calc = OpLabel -%calc_idx = OpLoad %int_t %tmp_idx_ptr -%calc_off = OpIMul %int_t %calc_idx %num_val -%in_idx = OpIAdd %int_t %idx_int %calc_off -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %in_idx -%in_val = OpLoad %int_t %in_loc -%tmp_val = OpLoad %int_t %tmp_val_ptr -%res_val = OpIAdd %int_t %tmp_val %in_val - OpStore %tmp_val_ptr %res_val Aligned 4 - OpBranch %block_cont -%block_cont = OpLabel -%tmp_idx_c = OpLoad %int_t %tmp_idx_ptr -%tmp_idx_inc = OpIAdd %int_t %tmp_idx_c %int_one - OpStore %tmp_idx_ptr %tmp_idx_inc - OpBranch %block_loop -%block_end = OpLabel -%out_val = OpLoad %int_t %tmp_val_ptr -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_const.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_function_const.spvasm32 deleted file mode 100644 index 32f96e8f..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_const.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_function_const" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Const %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_const.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_function_const.spvasm64 deleted file mode 100644 index a9b64c8c..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_const.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_function_const" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Const %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_inline.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_function_inline.spvasm32 deleted file mode 100644 index cfed803f..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_inline.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_function_inline" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Inline %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_inline.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_function_inline.spvasm64 deleted file mode 100644 index 09a720fa..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_inline.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_function_inline" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Inline %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_noinline.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_function_noinline.spvasm32 deleted file mode 100644 index 721cc171..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_noinline.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_function_noinline" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t DontInline %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_noinline.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_function_noinline.spvasm64 deleted file mode 100644 index e2d39821..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_noinline.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_function_noinline" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t DontInline %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_none.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_function_none.spvasm32 deleted file mode 100644 index abd28543..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_none.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_function_none" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t None %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_none.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_function_none.spvasm64 deleted file mode 100644 index 0718d318..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_none.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_function_none" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t None %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_pure.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_function_pure.spvasm32 deleted file mode 100644 index 5a204b38..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_pure.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_function_pure" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Pure %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_pure.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_function_pure.spvasm64 deleted file mode 100644 index ba6690fb..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_pure.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_function_pure" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Pure %local_func_t -%local_in = OpFunctionParameter %float_t -%local_label = OpLabel -%local_out = OpFNegate %float_t %local_in - OpReturnValue %local_out - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFunctionCall %float_t %local_func %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_pure_ptr.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_function_pure_ptr.spvasm32 deleted file mode 100644 index 99efd317..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_pure_ptr.spvasm32 +++ /dev/null @@ -1,48 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_function_pure_ptr" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_ptr_t %idx_t -%store_func_t = OpTypeFunction %void_t %float_ptr_t %idx_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Pure %local_func_t -%local_in_ptr = OpFunctionParameter %float_ptr_t -%local_idx = OpFunctionParameter %idx_t -%local_label = OpLabel -%local_in_off = OpInBoundsPtrAccessChain %float_ptr_t %local_in_ptr %local_idx -%local_in_val = OpLoad %float_t %local_in_off -%local_out = OpFNegate %float_t %local_in_val - OpReturnValue %local_out - OpFunctionEnd -%store_func = OpFunction %void_t None %store_func_t -%store_ptr = OpFunctionParameter %float_ptr_t -%store_idx = OpFunctionParameter %idx_t -%store_val = OpFunctionParameter %float_t -%store_label = OpLabel -%store_loc = OpInBoundsPtrAccessChain %float_ptr_t %store_ptr %store_idx - OpStore %store_loc %store_val - OpReturn - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%out_val = OpFunctionCall %float_t %local_func %inptr %idx -%void_val = OpFunctionCall %void_t %store_func %inptr %idx %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_function_pure_ptr.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_function_pure_ptr.spvasm64 deleted file mode 100644 index 41deaa0b..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_function_pure_ptr.spvasm64 +++ /dev/null @@ -1,51 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_function_pure_ptr" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%local_func_t = OpTypeFunction %float_t %float_ptr_t %idx_t -%store_func_t = OpTypeFunction %void_t %float_ptr_t %idx_t %float_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%local_func = OpFunction %float_t Pure %local_func_t -%local_in_ptr = OpFunctionParameter %float_ptr_t -%local_idx = OpFunctionParameter %idx_t -%local_label = OpLabel -%local_in_off = OpInBoundsPtrAccessChain %float_ptr_t %local_in_ptr %local_idx -%local_in_val = OpLoad %float_t %local_in_off -%local_out = OpFNegate %float_t %local_in_val - OpReturnValue %local_out - OpFunctionEnd -%store_func = OpFunction %void_t None %store_func_t -%store_ptr = OpFunctionParameter %float_ptr_t -%store_idx = OpFunctionParameter %idx_t -%store_val = OpFunctionParameter %float_t -%store_label = OpLabel -%store_loc = OpInBoundsPtrAccessChain %float_ptr_t %store_ptr %store_idx - OpStore %store_loc %store_val - OpReturn - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%out_val = OpFunctionCall %float_t %local_func %inptr %idx -%void_val = OpFunctionCall %void_t %store_func %inptr %idx %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_double.spvasm32 deleted file mode 100644 index 38574392..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_double.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_double" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx -%in_val = OpLoad %double_t %current -%out_val = OpFNegate %double_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_double.spvasm64 deleted file mode 100644 index 5dcf9596..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_double.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_double" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx -%in_val = OpLoad %double_t %current -%out_val = OpFNegate %double_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_float.spvasm32 deleted file mode 100644 index 76bb0845..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_float.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_float" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFNegate %float_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_float.spvasm64 deleted file mode 100644 index 79173f6c..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_float.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_float" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx -%in_val = OpLoad %float_t %current -%out_val = OpFNegate %float_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_float4.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_float4.spvasm32 deleted file mode 100644 index 2ca02d15..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_float4.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_float4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float4_t = OpTypeVector %float_t 4 -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float4_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float4_ptr_t %inptr %idx -%in_val = OpLoad %float4_t %current -%out_val = OpFNegate %float4_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_float4.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_float4.spvasm64 deleted file mode 100644 index 06d3512e..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_float4.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_float4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float4_t = OpTypeVector %float_t 4 -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float4_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float4_ptr_t %inptr %idx -%in_val = OpLoad %float4_t %current -%out_val = OpFNegate %float4_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_int.spvasm32 deleted file mode 100644 index 279e08f8..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_int.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_int" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%in_val = OpLoad %int_t %current -%out_val = OpSNegate %int_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_int.spvasm64 deleted file mode 100644 index 541ccf64..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_int.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_int" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%in_val = OpLoad %int_t %current -%out_val = OpSNegate %int_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_int4.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_int4.spvasm32 deleted file mode 100644 index 6da4969a..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_int4.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_int4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx -%in_val = OpLoad %int4_t %current -%out_val = OpSNegate %int4_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_int4.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_int4.spvasm64 deleted file mode 100644 index bf59317d..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_int4.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_int4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx -%in_val = OpLoad %int4_t %current -%out_val = OpSNegate %int4_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_long.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_long.spvasm32 deleted file mode 100644 index 744d35ee..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_long.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_long" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx -%in_val = OpLoad %long_t %current -%out_val = OpSNegate %long_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_long.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_long.spvasm64 deleted file mode 100644 index 92a7754c..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_long.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_long" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx -%in_val = OpLoad %long_t %current -%out_val = OpSNegate %long_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_short.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_neg_short.spvasm32 deleted file mode 100644 index 0cee9354..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_short.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_neg_short" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx -%in_val = OpLoad %short_t %current -%out_val = OpSNegate %short_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_neg_short.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_neg_short.spvasm64 deleted file mode 100644 index da69047f..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_neg_short.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_neg_short" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx -%in_val = OpLoad %short_t %current -%out_val = OpSNegate %short_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_int.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_not_int.spvasm32 deleted file mode 100644 index 453c78e4..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_int.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_not_int" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%in_val = OpLoad %int_t %current -%out_val = OpNot %int_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_int.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_not_int.spvasm64 deleted file mode 100644 index 78ff0943..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_int.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_not_int" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%in_val = OpLoad %int_t %current -%out_val = OpNot %int_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_int4.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_not_int4.spvasm32 deleted file mode 100644 index 68c5e9c6..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_int4.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_not_int4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx -%in_val = OpLoad %int4_t %current -%out_val = OpNot %int4_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_int4.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_not_int4.spvasm64 deleted file mode 100644 index ce4f2276..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_int4.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_not_int4" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx -%in_val = OpLoad %int4_t %current -%out_val = OpNot %int4_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_long.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_not_long.spvasm32 deleted file mode 100644 index 50323d25..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_long.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_not_long" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx -%in_val = OpLoad %long_t %current -%out_val = OpNot %long_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_long.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_not_long.spvasm64 deleted file mode 100644 index cf51849f..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_long.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_not_long" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx -%in_val = OpLoad %long_t %current -%out_val = OpNot %long_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_short.spvasm32 b/test_conformance/spirv_new/spirv_txt/op_not_short.spvasm32 deleted file mode 100644 index a3c488f3..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_short.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "op_not_short" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx -%in_val = OpLoad %short_t %current -%out_val = OpNot %short_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/op_not_short.spvasm64 b/test_conformance/spirv_new/spirv_txt/op_not_short.spvasm64 deleted file mode 100644 index 779c9b13..00000000 --- a/test_conformance/spirv_new/spirv_txt/op_not_short.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "op_not_short" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx -%in_val = OpLoad %short_t %current -%out_val = OpNot %short_t %in_val - OpStore %current %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/opaque.spvasm32 b/test_conformance/spirv_new/spirv_txt/opaque.spvasm32 deleted file mode 100644 index 619563ab..00000000 --- a/test_conformance/spirv_new/spirv_txt/opaque.spvasm32 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "opaque" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %opaque_store LinkageAttributes "opaque_store" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%opaque_t = OpTypeOpaque "opaque_t" -%opaque_ptr_t = OpTypePointer CrossWorkgroup %opaque_t -%val = OpConstant %float_t 3.1415927 -%func_t = OpTypeFunction %void_t %opaque_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%opaque_store_t = OpTypeFunction %void_t %opaque_ptr_t %idx_t %float_t -%opaque_store = OpFunction %void_t None %opaque_store_t -%opaque_store_in = OpFunctionParameter %opaque_ptr_t -%opaque_store_idx = OpFunctionParameter %idx_t -%opaque_store_val = OpFunctionParameter %float_t - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %opaque_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%return = OpFunctionCall %void_t %opaque_store %inptr %idx %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/opaque.spvasm64 b/test_conformance/spirv_new/spirv_txt/opaque.spvasm64 deleted file mode 100644 index 6a7875eb..00000000 --- a/test_conformance/spirv_new/spirv_txt/opaque.spvasm64 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "opaque" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpDecorate %opaque_store LinkageAttributes "opaque_store" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%shift_val = OpConstant %idx_t 32 -%val = OpConstant %float_t 3.1415927 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%opaque_t = OpTypeOpaque "opaque_t" -%opaque_ptr_t = OpTypePointer CrossWorkgroup %opaque_t -%func_t = OpTypeFunction %void_t %opaque_ptr_t -%opaque_store_t = OpTypeFunction %void_t %opaque_ptr_t %idx_t %float_t -%opaque_store = OpFunction %void_t None %opaque_store_t -%opaque_store_in = OpFunctionParameter %opaque_ptr_t -%opaque_store_idx = OpFunctionParameter %idx_t -%opaque_store_val = OpFunctionParameter %float_t - OpFunctionEnd -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %opaque_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%return = OpFunctionCall %void_t %opaque_store %inptr %idx %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/phi_2.spvasm32 b/test_conformance/spirv_new/spirv_txt/phi_2.spvasm32 deleted file mode 100644 index 44b55262..00000000 --- a/test_conformance/spirv_new/spirv_txt/phi_2.spvasm32 +++ /dev/null @@ -1,48 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "phi_2" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpBranch %block_phi -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpBranch %block_phi -%block_phi = OpLabel -%out_val = OpPhi %int_t %out1 %block1 %out2 %block2 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/phi_2.spvasm64 b/test_conformance/spirv_new/spirv_txt/phi_2.spvasm64 deleted file mode 100644 index 4ad0c2c0..00000000 --- a/test_conformance/spirv_new/spirv_txt/phi_2.spvasm64 +++ /dev/null @@ -1,52 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "phi_2" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpBranch %block_phi -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpBranch %block_phi -%block_phi = OpLabel -%out_val = OpPhi %int_t %out1 %block1 %out2 %block2 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/phi_3.spvasm32 b/test_conformance/spirv_new/spirv_txt/phi_3.spvasm32 deleted file mode 100644 index 381dc658..00000000 --- a/test_conformance/spirv_new/spirv_txt/phi_3.spvasm32 +++ /dev/null @@ -1,55 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "phi_3" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%cmp_val = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%compare1 = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare1 %block1 %block2 -%block1 = OpLabel -%compare2 = OpSLessThan %bool_t %lhs_val %cmp_val - OpBranchConditional %compare2 %block1_1 %block1_2 -%block1_1 = OpLabel -%out1_1 = OpISub %int_t %cmp_val %lhs_val - OpBranch %block_phi -%block1_2 = OpLabel -%out1_2 = OpISub %int_t %lhs_val %cmp_val - OpBranch %block_phi -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpBranch %block_phi -%block_phi = OpLabel -%out_val = OpPhi %int_t %out1_1 %block1_1 %out1_2 %block1_2 %out2 %block2 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/phi_3.spvasm64 b/test_conformance/spirv_new/spirv_txt/phi_3.spvasm64 deleted file mode 100644 index 8e4a99a7..00000000 --- a/test_conformance/spirv_new/spirv_txt/phi_3.spvasm64 +++ /dev/null @@ -1,59 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "phi_3" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%shift_val = OpConstant %idx_t 32 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%cmp_val = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%compare1 = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare1 %block1 %block2 -%block1 = OpLabel -%compare2 = OpSLessThan %bool_t %lhs_val %cmp_val - OpBranchConditional %compare2 %block1_1 %block1_2 -%block1_1 = OpLabel -%out1_1 = OpISub %int_t %cmp_val %lhs_val - OpBranch %block_phi -%block1_2 = OpLabel -%out1_2 = OpISub %int_t %lhs_val %cmp_val - OpBranch %block_phi -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpBranch %block_phi -%block_phi = OpLabel -%out_val = OpPhi %int_t %out1_1 %block1_1 %out1_2 %block1_2 %out2 %block2 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/phi_4.spvasm32 b/test_conformance/spirv_new/spirv_txt/phi_4.spvasm32 deleted file mode 100644 index 3b841f20..00000000 --- a/test_conformance/spirv_new/spirv_txt/phi_4.spvasm32 +++ /dev/null @@ -1,61 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "phi_4" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%cmp_val = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%compare1 = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare1 %block1 %block2 -%block1 = OpLabel -%compare2 = OpSLessThan %bool_t %lhs_val %cmp_val - OpBranchConditional %compare2 %block1_1 %block1_2 -%block1_1 = OpLabel -%out1_1 = OpISub %int_t %cmp_val %lhs_val - OpBranch %block_phi -%block1_2 = OpLabel -%out1_2 = OpISub %int_t %lhs_val %cmp_val - OpBranch %block_phi -%block2 = OpLabel -%compare3 = OpSLessThan %bool_t %rhs_val %cmp_val - OpBranchConditional %compare3 %block2_1 %block2_2 -%block2_1 = OpLabel -%out2_1 = OpISub %int_t %cmp_val %rhs_val - OpBranch %block_phi -%block2_2 = OpLabel -%out2_2 = OpISub %int_t %rhs_val %cmp_val - OpBranch %block_phi -%block_phi = OpLabel -%out_val = OpPhi %int_t %out1_1 %block1_1 %out1_2 %block1_2 %out2_1 %block2_1 %out2_2 %block2_2 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/phi_4.spvasm64 b/test_conformance/spirv_new/spirv_txt/phi_4.spvasm64 deleted file mode 100644 index 79a8c9bd..00000000 --- a/test_conformance/spirv_new/spirv_txt/phi_4.spvasm64 +++ /dev/null @@ -1,65 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "phi_4" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%cmp_val = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%compare1 = OpSLessThan %bool_t %lhs_val %rhs_val - OpBranchConditional %compare1 %block1 %block2 -%block1 = OpLabel -%compare2 = OpSLessThan %bool_t %lhs_val %cmp_val - OpBranchConditional %compare2 %block1_1 %block1_2 -%block1_1 = OpLabel -%out1_1 = OpISub %int_t %cmp_val %lhs_val - OpBranch %block_phi -%block1_2 = OpLabel -%out1_2 = OpISub %int_t %lhs_val %cmp_val - OpBranch %block_phi -%block2 = OpLabel -%compare3 = OpSLessThan %bool_t %rhs_val %cmp_val - OpBranchConditional %compare3 %block2_1 %block2_2 -%block2_1 = OpLabel -%out2_1 = OpISub %int_t %cmp_val %rhs_val - OpBranch %block_phi -%block2_2 = OpLabel -%out2_2 = OpISub %int_t %rhs_val %cmp_val - OpBranch %block_phi -%block_phi = OpLabel -%out_val = OpPhi %int_t %out1_1 %block1_1 %out1_2 %block1_2 %out2_1 %block2_1 %out2_2 %block2_2 -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_if_dont_flatten.spvasm32 b/test_conformance/spirv_new/spirv_txt/select_if_dont_flatten.spvasm32 deleted file mode 100644 index e3c45a37..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_if_dont_flatten.spvasm32 +++ /dev/null @@ -1,54 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "select_if_dont_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpSelectionMerge %final_block DontFlatten - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_if_dont_flatten.spvasm64 b/test_conformance/spirv_new/spirv_txt/select_if_dont_flatten.spvasm64 deleted file mode 100644 index e8566dac..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_if_dont_flatten.spvasm64 +++ /dev/null @@ -1,59 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "select_if_dont_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpSelectionMerge %final_block DontFlatten - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_if_flatten.spvasm32 b/test_conformance/spirv_new/spirv_txt/select_if_flatten.spvasm32 deleted file mode 100644 index 81cc1f73..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_if_flatten.spvasm32 +++ /dev/null @@ -1,54 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "select_if_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpSelectionMerge %final_block Flatten - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_if_flatten.spvasm64 b/test_conformance/spirv_new/spirv_txt/select_if_flatten.spvasm64 deleted file mode 100644 index 2a25ad1b..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_if_flatten.spvasm64 +++ /dev/null @@ -1,59 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "select_if_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpSelectionMerge %final_block Flatten - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_if_none.spvasm32 b/test_conformance/spirv_new/spirv_txt/select_if_none.spvasm32 deleted file mode 100644 index aba05ba7..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_if_none.spvasm32 +++ /dev/null @@ -1,54 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "select_if_none" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpSelectionMerge %final_block None - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_if_none.spvasm64 b/test_conformance/spirv_new/spirv_txt/select_if_none.spvasm64 deleted file mode 100644 index 99de731c..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_if_none.spvasm64 +++ /dev/null @@ -1,59 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "select_if_none" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%compare = OpSLessThan %bool_t %lhs_val %rhs_val - OpSelectionMerge %final_block None - OpBranchConditional %compare %block1 %block2 -%block1 = OpLabel -%out1 = OpISub %int_t %rhs_val %lhs_val - OpStore %tmp %out1 - OpBranch %final_block -%block2 = OpLabel -%out2 = OpISub %int_t %lhs_val %rhs_val - OpStore %tmp %out2 - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_switch_dont_flatten.spvasm32 b/test_conformance/spirv_new/spirv_txt/select_switch_dont_flatten.spvasm32 deleted file mode 100644 index 618b0789..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_switch_dont_flatten.spvasm32 +++ /dev/null @@ -1,63 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "select_switch_dont_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_two = OpConstant %int_t 2 -%int_three = OpConstant %int_t 3 -%int_four = OpConstant %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%add_val = OpIAdd %int_t %lhs_val %rhs_val -%selector = OpUMod %int_t %add_val %int_four - OpSelectionMerge %final_block DontFlatten - OpSwitch %selector %default 1 %block1 2 %block2 3 %block3 -%block1 = OpLabel - OpStore %tmp %int_one - OpBranch %final_block -%block2 = OpLabel - OpStore %tmp %int_two - OpBranch %final_block -%block3 = OpLabel - OpStore %tmp %int_three - OpBranch %final_block -%default = OpLabel - OpStore %tmp %int_zero - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_switch_dont_flatten.spvasm64 b/test_conformance/spirv_new/spirv_txt/select_switch_dont_flatten.spvasm64 deleted file mode 100644 index 54f154e4..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_switch_dont_flatten.spvasm64 +++ /dev/null @@ -1,68 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "select_switch_dont_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_two = OpConstant %int_t 2 -%int_three = OpConstant %int_t 3 -%int_four = OpConstant %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%add_val = OpIAdd %int_t %lhs_val %rhs_val -%selector = OpUMod %int_t %add_val %int_four - OpSelectionMerge %final_block DontFlatten - OpSwitch %selector %default 1 %block1 2 %block2 3 %block3 -%block1 = OpLabel - OpStore %tmp %int_one - OpBranch %final_block -%block2 = OpLabel - OpStore %tmp %int_two - OpBranch %final_block -%block3 = OpLabel - OpStore %tmp %int_three - OpBranch %final_block -%default = OpLabel - OpStore %tmp %int_zero - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_switch_flatten.spvasm32 b/test_conformance/spirv_new/spirv_txt/select_switch_flatten.spvasm32 deleted file mode 100644 index d90af141..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_switch_flatten.spvasm32 +++ /dev/null @@ -1,63 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "select_switch_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_two = OpConstant %int_t 2 -%int_three = OpConstant %int_t 3 -%int_four = OpConstant %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%add_val = OpIAdd %int_t %lhs_val %rhs_val -%selector = OpUMod %int_t %add_val %int_four - OpSelectionMerge %final_block Flatten - OpSwitch %selector %default 1 %block1 2 %block2 3 %block3 -%block1 = OpLabel - OpStore %tmp %int_one - OpBranch %final_block -%block2 = OpLabel - OpStore %tmp %int_two - OpBranch %final_block -%block3 = OpLabel - OpStore %tmp %int_three - OpBranch %final_block -%default = OpLabel - OpStore %tmp %int_zero - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_switch_flatten.spvasm64 b/test_conformance/spirv_new/spirv_txt/select_switch_flatten.spvasm64 deleted file mode 100644 index 41d408fd..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_switch_flatten.spvasm64 +++ /dev/null @@ -1,68 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "select_switch_flatten" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_two = OpConstant %int_t 2 -%int_three = OpConstant %int_t 3 -%int_four = OpConstant %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%add_val = OpIAdd %int_t %lhs_val %rhs_val -%selector = OpUMod %int_t %add_val %int_four - OpSelectionMerge %final_block Flatten - OpSwitch %selector %default 1 %block1 2 %block2 3 %block3 -%block1 = OpLabel - OpStore %tmp %int_one - OpBranch %final_block -%block2 = OpLabel - OpStore %tmp %int_two - OpBranch %final_block -%block3 = OpLabel - OpStore %tmp %int_three - OpBranch %final_block -%default = OpLabel - OpStore %tmp %int_zero - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_switch_none.spvasm32 b/test_conformance/spirv_new/spirv_txt/select_switch_none.spvasm32 deleted file mode 100644 index 324e1ef1..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_switch_none.spvasm32 +++ /dev/null @@ -1,63 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "select_switch_none" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_two = OpConstant %int_t 2 -%int_three = OpConstant %int_t 3 -%int_four = OpConstant %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function -%add_val = OpIAdd %int_t %lhs_val %rhs_val -%selector = OpUMod %int_t %add_val %int_four - OpSelectionMerge %final_block None - OpSwitch %selector %default 1 %block1 2 %block2 3 %block3 -%block1 = OpLabel - OpStore %tmp %int_one - OpBranch %final_block -%block2 = OpLabel - OpStore %tmp %int_two - OpBranch %final_block -%block3 = OpLabel - OpStore %tmp %int_three - OpBranch %final_block -%default = OpLabel - OpStore %tmp %int_zero - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/select_switch_none.spvasm64 b/test_conformance/spirv_new/spirv_txt/select_switch_none.spvasm64 deleted file mode 100644 index 3357672f..00000000 --- a/test_conformance/spirv_new/spirv_txt/select_switch_none.spvasm64 +++ /dev/null @@ -1,68 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "select_switch_none" - OpName %out_ptr "res" - OpName %lhs_ptr "lhs" - OpName %rhs_ptr "rhs" - OpDecorate %dec FuncParamAttr NoCapture -%dec = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %dec %out_ptr %lhs_ptr %rhs_ptr -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%bool_t = OpTypeBool -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%shift_val = OpConstant %idx_t 32 -%int_zero = OpConstant %int_t 0 -%int_one = OpConstant %int_t 1 -%int_two = OpConstant %int_t 2 -%int_three = OpConstant %int_t 3 -%int_four = OpConstant %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%tmp_ptr_t = OpTypePointer Function %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%out_ptr = OpFunctionParameter %int_ptr_t -%lhs_ptr = OpFunctionParameter %int_ptr_t -%rhs_ptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %lhs_ptr %idx -%lhs_val = OpLoad %int_t %lhs_loc Aligned 4 -%rhs_loc = OpInBoundsPtrAccessChain %int_ptr_t %rhs_ptr %idx -%rhs_val = OpLoad %int_t %rhs_loc Aligned 4 -%tmp = OpVariable %tmp_ptr_t Function - OpStore %tmp %int_zero -%add_val = OpIAdd %int_t %lhs_val %rhs_val -%selector = OpUMod %int_t %add_val %int_four - OpSelectionMerge %final_block None - OpSwitch %selector %default 1 %block1 2 %block2 3 %block3 -%block1 = OpLabel - OpStore %tmp %int_one - OpBranch %final_block -%block2 = OpLabel - OpStore %tmp %int_two - OpBranch %final_block -%block3 = OpLabel - OpStore %tmp %int_three - OpBranch %final_block -%default = OpLabel - OpStore %tmp %int_zero - OpBranch %final_block -%final_block = OpLabel -%out_val = OpLoad %int_t %tmp -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx - OpStore %out_loc %out_val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_char_simple.spvasm32 deleted file mode 100644 index 76ba3c4e..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_char_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%func_t = OpTypeFunction %void_t %char_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %char_ptr_t -%entry = OpLabel -%val = OpUndef %char_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %char_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_char_simple.spvasm64 deleted file mode 100644 index b1ac7771..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_char_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%func_t = OpTypeFunction %void_t %char_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %char_ptr_t -%entry = OpLabel -%val = OpUndef %char_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %char_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_double_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_double_simple.spvasm32 deleted file mode 100644 index 619fead8..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_double_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_double_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%val = OpUndef %double_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_double_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_double_simple.spvasm64 deleted file mode 100644 index aaa15963..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_double_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_double_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%func_t = OpTypeFunction %void_t %double_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%val = OpUndef %double_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %double_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_false_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_false_simple.spvasm32 deleted file mode 100644 index d62f7334..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_false_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_false_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%bool_val = OpUndef %bool_t -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_false_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_false_simple.spvasm64 deleted file mode 100644 index 3f05d655..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_false_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_false_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%bool_val = OpUndef %bool_t -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_float_simple.spvasm32 deleted file mode 100644 index 90f91c17..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_float_simple.spvasm32 +++ /dev/null @@ -1,28 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%val = OpUndef %float_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_float_simple.spvasm64 deleted file mode 100644 index b67a00e9..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_float_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%val = OpUndef %float_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_half_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_half_simple.spvasm32 deleted file mode 100644 index df367bb5..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_half_simple.spvasm32 +++ /dev/null @@ -1,31 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_half_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%half_t = OpTypeFloat 16 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%half_val = OpUndef %half_t -%val = OpFConvert %float_t %half_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_half_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_half_simple.spvasm64 deleted file mode 100644 index 5d464ff7..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_half_simple.spvasm64 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_half_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%half_t = OpTypeFloat 16 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%func_t = OpTypeFunction %void_t %float_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%half_val = OpUndef %half_t -%val = OpFConvert %float_t %half_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %float_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_int3_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_int3_simple.spvasm32 deleted file mode 100644 index a2361a63..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_int3_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_int3_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int3_t = OpTypeVector %int_t 3 -%int3_ptr_t = OpTypePointer CrossWorkgroup %int3_t -%func_t = OpTypeFunction %void_t %int3_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int3_ptr_t -%entry = OpLabel -%vec = OpUndef %int3_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int3_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_int3_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_int3_simple.spvasm64 deleted file mode 100644 index 9290f0d8..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_int3_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_int3_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int3_t = OpTypeVector %int_t 3 -%int3_ptr_t = OpTypePointer CrossWorkgroup %int3_t -%func_t = OpTypeFunction %void_t %int3_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int3_ptr_t -%entry = OpLabel -%vec = OpUndef %int3_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int3_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_int4_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_int4_simple.spvasm32 deleted file mode 100644 index cac2954f..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_int4_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_int4_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%vec = OpUndef %int4_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx - OpStore %current %vec Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_int4_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_int4_simple.spvasm64 deleted file mode 100644 index dd4219a6..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_int4_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_int4_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int4_ptr_t -%entry = OpLabel -%vec = OpUndef %int4_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int4_ptr_t %inptr %idx - OpStore %current %vec - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_int_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_int_simple.spvasm32 deleted file mode 100644 index 0cc5658f..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_int_simple.spvasm32 +++ /dev/null @@ -1,28 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_int_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%val = OpUndef %int_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_int_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_int_simple.spvasm64 deleted file mode 100644 index f01ff94a..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_int_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_int_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%val = OpUndef %int_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_long_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_long_simple.spvasm32 deleted file mode 100644 index 451f0174..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_long_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_long_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%val = OpUndef %long_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_long_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_long_simple.spvasm64 deleted file mode 100644 index dcc12b9d..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_long_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_long_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%func_t = OpTypeFunction %void_t %long_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %long_ptr_t -%entry = OpLabel -%val = OpUndef %long_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %long_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_short_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_short_simple.spvasm32 deleted file mode 100644 index d1213404..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_short_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_short_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%val = OpUndef %short_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_short_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_short_simple.spvasm64 deleted file mode 100644 index e2256b8e..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_short_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_short_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%short_t = OpTypeInt 16 0 -%short_ptr_t = OpTypePointer CrossWorkgroup %short_t -%func_t = OpTypeFunction %void_t %short_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %short_ptr_t -%entry = OpLabel -%val = OpUndef %short_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %short_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_struct_int_char_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_struct_int_char_simple.spvasm32 deleted file mode 100644 index 94c04e0f..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_struct_int_char_simple.spvasm32 +++ /dev/null @@ -1,31 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_struct_int_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct_val = OpUndef %struct_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_struct_int_char_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_struct_int_char_simple.spvasm64 deleted file mode 100644 index f4b52052..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_struct_int_char_simple.spvasm64 +++ /dev/null @@ -1,35 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_struct_int_char_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct_val = OpUndef %struct_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_struct_int_float_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_struct_int_float_simple.spvasm32 deleted file mode 100644 index 26161e22..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_struct_int_float_simple.spvasm32 +++ /dev/null @@ -1,30 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_struct_int_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%float_t = OpTypeFloat 32 -%struct_t = OpTypeStruct %int_t %float_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct_val = OpUndef %struct_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_struct_int_float_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_struct_int_float_simple.spvasm64 deleted file mode 100644 index dfb707f1..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_struct_int_float_simple.spvasm64 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_struct_int_float_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%float_t = OpTypeFloat 32 -%struct_t = OpTypeStruct %int_t %float_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct_val = OpUndef %struct_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_struct_struct_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_struct_struct_simple.spvasm32 deleted file mode 100644 index da1b5709..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_struct_struct_simple.spvasm32 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Kernel - OpCapability Linkage - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_struct_struct_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct2_val = OpUndef %struct2_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct2_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_struct_struct_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_struct_struct_simple.spvasm64 deleted file mode 100644 index 57d54dc1..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_struct_struct_simple.spvasm64 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_struct_struct_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int2_t = OpTypeVector %int_t 2 -%char_t = OpTypeInt 8 0 -%struct_t = OpTypeStruct %int_t %char_t -%struct2_t = OpTypeStruct %int2_t %struct_t -%struct_ptr_t = OpTypePointer CrossWorkgroup %struct2_t -%func_t = OpTypeFunction %void_t %struct_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %struct_ptr_t -%entry = OpLabel -%struct2_val = OpUndef %struct2_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %struct_ptr_t %inptr %idx - OpStore %current %struct2_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_true_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_true_simple.spvasm32 deleted file mode 100644 index 22060fd1..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_true_simple.spvasm32 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_true_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%bool_val = OpUndef %bool_t -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val Aligned 4 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_true_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_true_simple.spvasm64 deleted file mode 100644 index ffbb3bba..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_true_simple.spvasm64 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_true_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%bool_t = OpTypeBool -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t -%shift_val = OpConstant %idx_t 32 -%true_val = OpConstant %int_t 1 -%false_val = OpConstant %int_t 0 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%bool_val = OpUndef %bool_t -%val = OpSelect %int_t %bool_val %true_val %false_val -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_uchar_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_uchar_simple.spvasm32 deleted file mode 100644 index 56ca9e8e..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_uchar_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_uchar_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uchar_t = OpTypeInt 8 0 -%uchar_ptr_t = OpTypePointer CrossWorkgroup %uchar_t -%func_t = OpTypeFunction %void_t %uchar_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uchar_ptr_t -%entry = OpLabel -%val = OpUndef %uchar_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %uchar_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_uchar_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_uchar_simple.spvasm64 deleted file mode 100644 index 5fa778c7..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_uchar_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_uchar_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uchar_t = OpTypeInt 8 0 -%uchar_ptr_t = OpTypePointer CrossWorkgroup %uchar_t -%func_t = OpTypeFunction %void_t %uchar_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uchar_ptr_t -%entry = OpLabel -%val = OpUndef %uchar_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %uchar_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_uint_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_uint_simple.spvasm32 deleted file mode 100644 index c2117ab5..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_uint_simple.spvasm32 +++ /dev/null @@ -1,28 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_uint_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uint_t = OpTypeInt 32 0 -%uint_ptr_t = OpTypePointer CrossWorkgroup %uint_t -%func_t = OpTypeFunction %void_t %uint_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uint_ptr_t -%entry = OpLabel -%val = OpUndef %uint_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %uint_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_uint_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_uint_simple.spvasm64 deleted file mode 100644 index a45231ee..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_uint_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_uint_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%uint_t = OpTypeInt 32 0 -%uint_ptr_t = OpTypePointer CrossWorkgroup %uint_t -%func_t = OpTypeFunction %void_t %uint_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %uint_ptr_t -%entry = OpLabel -%val = OpUndef %uint_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %uint_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_ulong_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_ulong_simple.spvasm32 deleted file mode 100644 index 42458fb8..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_ulong_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_ulong_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ulong_t = OpTypeInt 64 0 -%ulong_ptr_t = OpTypePointer CrossWorkgroup %ulong_t -%func_t = OpTypeFunction %void_t %ulong_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ulong_ptr_t -%entry = OpLabel -%val = OpUndef %ulong_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %ulong_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_ulong_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_ulong_simple.spvasm64 deleted file mode 100644 index f0e87f96..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_ulong_simple.spvasm64 +++ /dev/null @@ -1,32 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_ulong_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ulong_t = OpTypeInt 64 0 -%ulong_ptr_t = OpTypePointer CrossWorkgroup %ulong_t -%func_t = OpTypeFunction %void_t %ulong_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ulong_ptr_t -%entry = OpLabel -%val = OpUndef %ulong_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %ulong_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_ushort_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/undef_ushort_simple.spvasm32 deleted file mode 100644 index a8972f82..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_ushort_simple.spvasm32 +++ /dev/null @@ -1,29 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "undef_ushort_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ushort_t = OpTypeInt 16 0 -%ushort_ptr_t = OpTypePointer CrossWorkgroup %ushort_t -%func_t = OpTypeFunction %void_t %ushort_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ushort_ptr_t -%entry = OpLabel -%val = OpUndef %ushort_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current = OpInBoundsPtrAccessChain %ushort_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/undef_ushort_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/undef_ushort_simple.spvasm64 deleted file mode 100644 index cfdb129a..00000000 --- a/test_conformance/spirv_new/spirv_txt/undef_ushort_simple.spvasm64 +++ /dev/null @@ -1,33 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "undef_ushort_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%ushort_t = OpTypeInt 16 0 -%ushort_ptr_t = OpTypePointer CrossWorkgroup %ushort_t -%func_t = OpTypeFunction %void_t %ushort_ptr_t -%shift_val = OpConstant %idx_t 32 -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %ushort_ptr_t -%entry = OpLabel -%val = OpUndef %ushort_t -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current = OpInBoundsPtrAccessChain %ushort_ptr_t %inptr %idx - OpStore %current %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/unreachable_simple.spvasm32 b/test_conformance/spirv_new/spirv_txt/unreachable_simple.spvasm32 deleted file mode 100644 index cd1acb9e..00000000 --- a/test_conformance/spirv_new/spirv_txt/unreachable_simple.spvasm32 +++ /dev/null @@ -1,34 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "unreachable_simple" - OpName %inptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%outptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%current_in = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%current_out = OpInBoundsPtrAccessChain %int_ptr_t %outptr %idx -%val = OpLoad %int_t %current_in - OpBranch %final_block -%unreachable = OpLabel - OpUnreachable -%final_block = OpLabel - OpStore %current_out %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/unreachable_simple.spvasm64 b/test_conformance/spirv_new/spirv_txt/unreachable_simple.spvasm64 deleted file mode 100644 index ed980907..00000000 --- a/test_conformance/spirv_new/spirv_txt/unreachable_simple.spvasm64 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "unreachable_simple" - OpName %inptr "in" - OpName %outptr "out" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %inptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%inptr = OpFunctionParameter %int_ptr_t -%outptr = OpFunctionParameter %int_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%current_in = OpInBoundsPtrAccessChain %int_ptr_t %inptr %idx -%current_out = OpInBoundsPtrAccessChain %int_ptr_t %outptr %idx - OpBranch %final_block -%unreachable = OpLabel - OpUnreachable -%final_block = OpLabel -%val = OpLoad %int_t %current_in - OpStore %current_out %val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_char16_extract.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_char16_extract.spvasm32 deleted file mode 100644 index cd298175..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_char16_extract.spvasm32 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Vector16 - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_char16_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char16_t = OpTypeVector %char_t 16 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%char16_ptr_t = OpTypePointer CrossWorkgroup %char16_t -%func_t = OpTypeFunction %void_t %char16_ptr_t %char_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %char16_ptr_t -%out_ptr = OpFunctionParameter %char_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %char16_ptr_t %in_ptr %idx -%in_val = OpLoad %char16_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %char_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %char_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_char16_extract.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_char16_extract.spvasm64 deleted file mode 100644 index 88fc9d65..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_char16_extract.spvasm64 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpCapability Vector16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_char16_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char16_t = OpTypeVector %char_t 16 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%char16_ptr_t = OpTypePointer CrossWorkgroup %char16_t -%func_t = OpTypeFunction %void_t %char16_ptr_t %char_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %char16_ptr_t -%out_ptr = OpFunctionParameter %char_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %char16_ptr_t %in_ptr %idx -%in_val = OpLoad %char16_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %char_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %char_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_char16_insert.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_char16_insert.spvasm32 deleted file mode 100644 index f9b818ed..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_char16_insert.spvasm32 +++ /dev/null @@ -1,39 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Vector16 - OpCapability Int8 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_char16_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char16_t = OpTypeVector %char_t 16 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%char16_ptr_t = OpTypePointer CrossWorkgroup %char16_t -%func_t = OpTypeFunction %void_t %char_ptr_t %char16_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %char_ptr_t -%out_ptr = OpFunctionParameter %char16_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %char_ptr_t %in_ptr %idx -%in_val = OpLoad %char_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %char16_ptr_t %out_ptr %idx -%tmp_val = OpLoad %char16_t %out_loc -%out_val = OpVectorInsertDynamic %char16_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_char16_insert.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_char16_insert.spvasm64 deleted file mode 100644 index 8cc1d217..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_char16_insert.spvasm64 +++ /dev/null @@ -1,43 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Int8 - OpCapability Vector16 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_char16_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%char_t = OpTypeInt 8 0 -%char16_t = OpTypeVector %char_t 16 -%char_ptr_t = OpTypePointer CrossWorkgroup %char_t -%char16_ptr_t = OpTypePointer CrossWorkgroup %char16_t -%func_t = OpTypeFunction %void_t %char_ptr_t %char16_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %char_ptr_t -%out_ptr = OpFunctionParameter %char16_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %char_ptr_t %in_ptr %idx -%in_val = OpLoad %char_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %char16_ptr_t %out_ptr %idx -%tmp_val = OpLoad %char16_t %out_loc -%out_val = OpVectorInsertDynamic %char16_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_double2_extract.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_double2_extract.spvasm32 deleted file mode 100644 index 6c83da7a..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_double2_extract.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_double2_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double2_t = OpTypeVector %double_t 2 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%double2_ptr_t = OpTypePointer CrossWorkgroup %double2_t -%func_t = OpTypeFunction %void_t %double2_ptr_t %double_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %double2_ptr_t -%out_ptr = OpFunctionParameter %double_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %double2_ptr_t %in_ptr %idx -%in_val = OpLoad %double2_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %double_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %double_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_double2_extract.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_double2_extract.spvasm64 deleted file mode 100644 index ecf97f89..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_double2_extract.spvasm64 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_double2_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double2_t = OpTypeVector %double_t 2 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%double2_ptr_t = OpTypePointer CrossWorkgroup %double2_t -%func_t = OpTypeFunction %void_t %double2_ptr_t %double_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %double2_ptr_t -%out_ptr = OpFunctionParameter %double_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %double2_ptr_t %in_ptr %idx -%in_val = OpLoad %double2_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %double_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %double_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_double2_insert.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_double2_insert.spvasm32 deleted file mode 100644 index db1b72ad..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_double2_insert.spvasm32 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_double2_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double2_t = OpTypeVector %double_t 2 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%double2_ptr_t = OpTypePointer CrossWorkgroup %double2_t -%func_t = OpTypeFunction %void_t %double_ptr_t %double2_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %double_ptr_t -%out_ptr = OpFunctionParameter %double2_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %double_ptr_t %in_ptr %idx -%in_val = OpLoad %double_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %double2_ptr_t %out_ptr %idx -%tmp_val = OpLoad %double2_t %out_loc -%out_val = OpVectorInsertDynamic %double2_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_double2_insert.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_double2_insert.spvasm64 deleted file mode 100644 index 961aa486..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_double2_insert.spvasm64 +++ /dev/null @@ -1,42 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_double2_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double2_t = OpTypeVector %double_t 2 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%double2_ptr_t = OpTypePointer CrossWorkgroup %double2_t -%func_t = OpTypeFunction %void_t %double_ptr_t %double2_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %double_ptr_t -%out_ptr = OpFunctionParameter %double2_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %double_ptr_t %in_ptr %idx -%in_val = OpLoad %double_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %double2_ptr_t %out_ptr %idx -%tmp_val = OpLoad %double2_t %out_loc -%out_val = OpVectorInsertDynamic %double2_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_float4_extract.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_float4_extract.spvasm32 deleted file mode 100644 index 8b832700..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_float4_extract.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_float4_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float4_t = OpTypeVector %float_t 4 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float4_ptr_t %float_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %float4_ptr_t -%out_ptr = OpFunctionParameter %float_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %float4_ptr_t %in_ptr %idx -%in_val = OpLoad %float4_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %float_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %float_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_float4_extract.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_float4_extract.spvasm64 deleted file mode 100644 index 5f832a56..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_float4_extract.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_float4_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float4_t = OpTypeVector %float_t 4 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float4_ptr_t %float_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %float4_ptr_t -%out_ptr = OpFunctionParameter %float_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %float4_ptr_t %in_ptr %idx -%in_val = OpLoad %float4_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %float_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %float_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_float4_insert.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_float4_insert.spvasm32 deleted file mode 100644 index 23e729b3..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_float4_insert.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_float4_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float4_t = OpTypeVector %float_t 4 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float_ptr_t %float4_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %float_ptr_t -%out_ptr = OpFunctionParameter %float4_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %float_ptr_t %in_ptr %idx -%in_val = OpLoad %float_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %float4_ptr_t %out_ptr %idx -%tmp_val = OpLoad %float4_t %out_loc -%out_val = OpVectorInsertDynamic %float4_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_float4_insert.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_float4_insert.spvasm64 deleted file mode 100644 index d4e2fe86..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_float4_insert.spvasm64 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_float4_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float4_t = OpTypeVector %float_t 4 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float_ptr_t %float4_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %float_ptr_t -%out_ptr = OpFunctionParameter %float4_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %float_ptr_t %in_ptr %idx -%in_val = OpLoad %float_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %float4_ptr_t %out_ptr %idx -%tmp_val = OpLoad %float4_t %out_loc -%out_val = OpVectorInsertDynamic %float4_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_int4_extract.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_int4_extract.spvasm32 deleted file mode 100644 index 690a9253..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_int4_extract.spvasm32 +++ /dev/null @@ -1,36 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_int4_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t %int_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %int4_ptr_t -%out_ptr = OpFunctionParameter %int_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %int4_ptr_t %in_ptr %idx -%in_val = OpLoad %int4_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %int_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_int4_extract.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_int4_extract.spvasm64 deleted file mode 100644 index 68a0aece..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_int4_extract.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_int4_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int4_ptr_t %int_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %int4_ptr_t -%out_ptr = OpFunctionParameter %int_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %int4_ptr_t %in_ptr %idx -%in_val = OpLoad %int4_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %int_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %int_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_int4_insert.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_int4_insert.spvasm32 deleted file mode 100644 index 2a91b78c..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_int4_insert.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_int4_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int4_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %int_ptr_t -%out_ptr = OpFunctionParameter %int4_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %idx -%in_val = OpLoad %int_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %int4_ptr_t %out_ptr %idx -%tmp_val = OpLoad %int4_t %out_loc -%out_val = OpVectorInsertDynamic %int4_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_int4_insert.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_int4_insert.spvasm64 deleted file mode 100644 index 67231af4..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_int4_insert.spvasm64 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_int4_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%int_t = OpTypeInt 32 0 -%int4_t = OpTypeVector %int_t 4 -%int_ptr_t = OpTypePointer CrossWorkgroup %int_t -%int4_ptr_t = OpTypePointer CrossWorkgroup %int4_t -%func_t = OpTypeFunction %void_t %int_ptr_t %int4_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %int_ptr_t -%out_ptr = OpFunctionParameter %int4_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %int_ptr_t %in_ptr %idx -%in_val = OpLoad %int_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %int4_ptr_t %out_ptr %idx -%tmp_val = OpLoad %int4_t %out_loc -%out_val = OpVectorInsertDynamic %int4_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_long2_extract.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_long2_extract.spvasm32 deleted file mode 100644 index e0fe95c5..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_long2_extract.spvasm32 +++ /dev/null @@ -1,37 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_long2_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long2_t = OpTypeVector %long_t 2 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%long2_ptr_t = OpTypePointer CrossWorkgroup %long2_t -%func_t = OpTypeFunction %void_t %long2_ptr_t %long_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %long2_ptr_t -%out_ptr = OpFunctionParameter %long_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %long2_ptr_t %in_ptr %idx -%in_val = OpLoad %long2_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %long_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %long_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_long2_extract.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_long2_extract.spvasm64 deleted file mode 100644 index 9c523f13..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_long2_extract.spvasm64 +++ /dev/null @@ -1,40 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_long2_extract" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long2_t = OpTypeVector %long_t 2 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%long2_ptr_t = OpTypePointer CrossWorkgroup %long2_t -%func_t = OpTypeFunction %void_t %long2_ptr_t %long_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %long2_ptr_t -%out_ptr = OpFunctionParameter %long_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %long2_ptr_t %in_ptr %idx -%in_val = OpLoad %long2_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %long_ptr_t %out_ptr %idx -%out_val = OpVectorExtractDynamic %long_t %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_long2_insert.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_long2_insert.spvasm32 deleted file mode 100644 index 2a2e1ca6..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_long2_insert.spvasm32 +++ /dev/null @@ -1,38 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_long2_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long2_t = OpTypeVector %long_t 2 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%long2_ptr_t = OpTypePointer CrossWorkgroup %long2_t -%func_t = OpTypeFunction %void_t %long_ptr_t %long2_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %long_ptr_t -%out_ptr = OpFunctionParameter %long2_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%in_loc = OpInBoundsPtrAccessChain %long_ptr_t %in_ptr %idx -%in_val = OpLoad %long_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %long2_ptr_t %out_ptr %idx -%tmp_val = OpLoad %long2_t %out_loc -%out_val = OpVectorInsertDynamic %long2_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_long2_insert.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_long2_insert.spvasm64 deleted file mode 100644 index dfea0bc8..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_long2_insert.spvasm64 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_long2_insert" - OpName %in_ptr "in" - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %in_ptr FuncParamAttr NoCapture - OpDecorate %out_ptr FuncParamAttr NoCapture - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%vec_idx_t = OpTypeInt 32 0 -%void_t = OpTypeVoid -%long_t = OpTypeInt 64 0 -%long2_t = OpTypeVector %long_t 2 -%long_ptr_t = OpTypePointer CrossWorkgroup %long_t -%long2_ptr_t = OpTypePointer CrossWorkgroup %long2_t -%func_t = OpTypeFunction %void_t %long_ptr_t %long2_ptr_t %vec_idx_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%in_ptr = OpFunctionParameter %long_ptr_t -%out_ptr = OpFunctionParameter %long2_ptr_t -%vec_idx = OpFunctionParameter %vec_idx_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%in_loc = OpInBoundsPtrAccessChain %long_ptr_t %in_ptr %idx -%in_val = OpLoad %long_t %in_loc -%out_loc = OpInBoundsPtrAccessChain %long2_ptr_t %out_ptr %idx -%tmp_val = OpLoad %long2_t %out_loc -%out_val = OpVectorInsertDynamic %long2_t %tmp_val %in_val %vec_idx - OpStore %out_loc %out_val - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_double.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_times_scalar_double.spvasm32 deleted file mode 100644 index 52f4c655..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_double.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Float64 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_times_scalar" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %attr FuncParamAttr NoCapture -%attr = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %attr %res %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%double4_t = OpTypeVector %double_t 4 -%double4_ptr_t = OpTypePointer CrossWorkgroup %double4_t -%func_t = OpTypeFunction %void_t %double4_ptr_t %double4_ptr_t %double_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %double4_ptr_t -%lhs = OpFunctionParameter %double4_ptr_t -%rhs = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_ptr = OpInBoundsPtrAccessChain %double4_ptr_t %lhs %idx -%lhs_val = OpLoad %double4_t %lhs_ptr Aligned 32 -%rhs_ptr = OpInBoundsPtrAccessChain %double_ptr_t %rhs %idx -%rhs_val = OpLoad %double_t %rhs_ptr Aligned 8 -%res_val = OpVectorTimesScalar %double4_t %lhs_val %rhs_val -%res_ptr = OpInBoundsPtrAccessChain %double4_ptr_t %res %idx - OpStore %res_ptr %res_val Aligned 32 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_double.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_times_scalar_double.spvasm64 deleted file mode 100644 index 686b538b..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_double.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int64 - OpCapability Float64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_times_scalar" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %attr FuncParamAttr NoCapture -%attr = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %attr %res %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%void_t = OpTypeVoid -%double_t = OpTypeFloat 64 -%double_ptr_t = OpTypePointer CrossWorkgroup %double_t -%double4_t = OpTypeVector %double_t 4 -%double4_ptr_t = OpTypePointer CrossWorkgroup %double4_t -%func_t = OpTypeFunction %void_t %double4_ptr_t %double4_ptr_t %double_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %double4_ptr_t -%lhs = OpFunctionParameter %double4_ptr_t -%rhs = OpFunctionParameter %double_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_ptr = OpInBoundsPtrAccessChain %double4_ptr_t %lhs %idx -%lhs_val = OpLoad %double4_t %lhs_ptr Aligned 32 -%rhs_ptr = OpInBoundsPtrAccessChain %double_ptr_t %rhs %idx -%rhs_val = OpLoad %double_t %rhs_ptr Aligned 8 -%res_val = OpVectorTimesScalar %double4_t %lhs_val %rhs_val -%res_ptr = OpInBoundsPtrAccessChain %double4_ptr_t %res %idx - OpStore %res_ptr %res_val Aligned 32 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_float.spvasm32 b/test_conformance/spirv_new/spirv_txt/vector_times_scalar_float.spvasm32 deleted file mode 100644 index b5ec7f6b..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_float.spvasm32 +++ /dev/null @@ -1,41 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpMemoryModel Physical32 OpenCL - OpEntryPoint Kernel %func "vector_times_scalar" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %attr FuncParamAttr NoCapture -%attr = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %attr %res %lhs %rhs -%idx_t = OpTypeInt 32 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%float4_t = OpTypeVector %float_t 4 -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float4_ptr_t %float4_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %float4_ptr_t -%lhs = OpFunctionParameter %float4_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx = OpCompositeExtract %idx_t %idx3 0 -%lhs_ptr = OpInBoundsPtrAccessChain %float4_ptr_t %lhs %idx -%lhs_val = OpLoad %float4_t %lhs_ptr Aligned 16 -%rhs_ptr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_ptr Aligned 4 -%res_val = OpVectorTimesScalar %float4_t %lhs_val %rhs_val -%res_ptr = OpInBoundsPtrAccessChain %float4_ptr_t %res %idx - OpStore %res_ptr %res_val Aligned 16 - OpReturn - OpFunctionEnd diff --git a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_float.spvasm64 b/test_conformance/spirv_new/spirv_txt/vector_times_scalar_float.spvasm64 deleted file mode 100644 index e450102f..00000000 --- a/test_conformance/spirv_new/spirv_txt/vector_times_scalar_float.spvasm64 +++ /dev/null @@ -1,45 +0,0 @@ - OpCapability Addresses - OpCapability Linkage - OpCapability Kernel - OpCapability Int16 - OpCapability Int64 - OpMemoryModel Physical64 OpenCL - OpEntryPoint Kernel %func "vector_times_scalar" - OpName %res "res" - OpName %lhs "lhs" - OpName %rhs "rhs" - OpDecorate %attr FuncParamAttr NoCapture -%attr = OpDecorationGroup - OpDecorate %global_id BuiltIn GlobalInvocationId - OpDecorate %global_id Constant - OpDecorate %global_id LinkageAttributes "__spirv_GlobalInvocationId" Import - OpGroupDecorate %attr %res %lhs %rhs -%idx_t = OpTypeInt 64 0 -%idx3_t = OpTypeVector %idx_t 3 -%idx3_ptr_t = OpTypePointer UniformConstant %idx3_t -%shift_val = OpConstant %idx_t 32 -%void_t = OpTypeVoid -%float_t = OpTypeFloat 32 -%float_ptr_t = OpTypePointer CrossWorkgroup %float_t -%float4_t = OpTypeVector %float_t 4 -%float4_ptr_t = OpTypePointer CrossWorkgroup %float4_t -%func_t = OpTypeFunction %void_t %float4_ptr_t %float4_ptr_t %float_ptr_t -%global_id = OpVariable %idx3_ptr_t UniformConstant -%func = OpFunction %void_t None %func_t -%res = OpFunctionParameter %float4_ptr_t -%lhs = OpFunctionParameter %float4_ptr_t -%rhs = OpFunctionParameter %float_ptr_t -%entry = OpLabel -%idx3 = OpLoad %idx3_t %global_id Aligned 0 -%idx_tmp = OpCompositeExtract %idx_t %idx3 0 -%idx_shift = OpShiftLeftLogical %idx_t %idx_tmp %shift_val -%idx = OpShiftRightArithmetic %idx_t %idx_shift %shift_val -%lhs_ptr = OpInBoundsPtrAccessChain %float4_ptr_t %lhs %idx -%lhs_val = OpLoad %float4_t %lhs_ptr Aligned 16 -%rhs_ptr = OpInBoundsPtrAccessChain %float_ptr_t %rhs %idx -%rhs_val = OpLoad %float_t %rhs_ptr Aligned 4 -%res_val = OpVectorTimesScalar %float4_t %lhs_val %rhs_val -%res_ptr = OpInBoundsPtrAccessChain %float4_ptr_t %res %idx - OpStore %res_ptr %res_val Aligned 16 - OpReturn - OpFunctionEnd