Files
OpenCL-CTS/test_conformance/spirv_new/spirv_txt/opaque.spvasm64
Kevin Petit 05a11d8e49 Synchronise with Khronos-private Gitlab branch
The maintenance of the conformance tests is moving to Github.

This commit contains all the changes that have been done in
Gitlab since the first public release of the conformance tests.

Signed-off-by: Kevin Petit kevin.petit@arm.com
2019-03-05 16:24:34 +00:00

40 lines
2.0 KiB
Plaintext

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