Merge branch 'one_type_type2'

This commit is contained in:
Andrzej Janik 2021-06-25 01:20:38 +02:00
commit 8ef6c3d8b6
44 changed files with 2633 additions and 3020 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %34 %1 = OpFunction %void None %34
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %uint %23 Aligned 4 %12 = OpLoad %uint %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_uint %15
%24 = OpConvertUToPtr %_ptr_Generic_uint %22 %41 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %uint %24 Aligned 4 %42 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %41 %ulong_4
%22 = OpBitcast %_ptr_Generic_uint %42
%14 = OpLoad %uint %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %uint %6 %17 = OpLoad %uint %6
%18 = OpLoad %uint %7 %18 = OpLoad %uint %7

View file

@ -24,6 +24,7 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%uint_0 = OpConstant %uint 0 %uint_0 = OpConstant %uint 0
@ -49,9 +50,11 @@
%13 = OpLoad %uint %29 Aligned 4 %13 = OpLoad %uint %29 Aligned 4
OpStore %7 %13 OpStore %7 %13
%16 = OpLoad %ulong %5 %16 = OpLoad %ulong %5
%26 = OpIAdd %ulong %16 %ulong_4 %30 = OpConvertUToPtr %_ptr_Generic_uint %16
%30 = OpConvertUToPtr %_ptr_Generic_uint %26 %51 = OpBitcast %_ptr_Generic_uchar %30
%15 = OpLoad %uint %30 Aligned 4 %52 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %51 %ulong_4
%26 = OpBitcast %_ptr_Generic_uint %52
%15 = OpLoad %uint %26 Aligned 4
OpStore %8 %15 OpStore %8 %15
%17 = OpLoad %uint %7 %17 = OpLoad %uint %7
%31 = OpBitcast %_ptr_Workgroup_uint %4 %31 = OpBitcast %_ptr_Workgroup_uint %4
@ -69,8 +72,10 @@
OpStore %34 %22 Aligned 4 OpStore %34 %22 Aligned 4
%23 = OpLoad %ulong %6 %23 = OpLoad %ulong %6
%24 = OpLoad %uint %8 %24 = OpLoad %uint %8
%28 = OpIAdd %ulong %23 %ulong_4_0 %35 = OpConvertUToPtr %_ptr_Generic_uint %23
%35 = OpConvertUToPtr %_ptr_Generic_uint %28 %56 = OpBitcast %_ptr_Generic_uchar %35
OpStore %35 %24 Aligned 4 %57 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %56 %ulong_4_0
%28 = OpBitcast %_ptr_Generic_uint %57
OpStore %28 %24 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -28,6 +28,7 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_4_0 = OpConstant %ulong 4 %ulong_4_0 = OpConstant %ulong 4
%37 = OpFunction %float None %46 %37 = OpFunction %float None %46
%39 = OpFunctionParameter %_ptr_Workgroup_float %39 = OpFunctionParameter %_ptr_Workgroup_float
@ -54,9 +55,11 @@
%13 = OpLoad %float %29 Aligned 4 %13 = OpLoad %float %29 Aligned 4
OpStore %7 %13 OpStore %7 %13
%16 = OpLoad %ulong %5 %16 = OpLoad %ulong %5
%26 = OpIAdd %ulong %16 %ulong_4 %30 = OpConvertUToPtr %_ptr_Generic_float %16
%30 = OpConvertUToPtr %_ptr_Generic_float %26 %58 = OpBitcast %_ptr_Generic_uchar %30
%15 = OpLoad %float %30 Aligned 4 %59 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %58 %ulong_4
%26 = OpBitcast %_ptr_Generic_float %59
%15 = OpLoad %float %26 Aligned 4
OpStore %8 %15 OpStore %8 %15
%17 = OpLoad %float %7 %17 = OpLoad %float %7
%31 = OpBitcast %_ptr_Workgroup_float %4 %31 = OpBitcast %_ptr_Workgroup_float %4
@ -74,8 +77,10 @@
OpStore %34 %22 Aligned 4 OpStore %34 %22 Aligned 4
%23 = OpLoad %ulong %6 %23 = OpLoad %ulong %6
%24 = OpLoad %float %8 %24 = OpLoad %float %8
%28 = OpIAdd %ulong %23 %ulong_4_0 %35 = OpConvertUToPtr %_ptr_Generic_float %23
%35 = OpConvertUToPtr %_ptr_Generic_float %28 %60 = OpBitcast %_ptr_Generic_uchar %35
OpStore %35 %24 Aligned 4 %61 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %60 %ulong_4_0
%28 = OpBitcast %_ptr_Generic_float %61
OpStore %28 %24 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%uint_100 = OpConstant %uint 100 %uint_100 = OpConstant %uint 100
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%uint_0 = OpConstant %uint 0 %uint_0 = OpConstant %uint 0
@ -45,16 +47,20 @@
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%16 = OpLoad %uint %6 %16 = OpLoad %uint %6
%24 = OpIAdd %ulong %15 %ulong_4 %31 = OpConvertUToPtr %_ptr_Generic_uint %15
%32 = OpConvertUToPtr %_ptr_Generic_uint %24 %49 = OpBitcast %_ptr_Generic_uchar %31
%50 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %49 %ulong_4
%24 = OpBitcast %_ptr_Generic_uint %50
%33 = OpCopyObject %uint %16 %33 = OpCopyObject %uint %16
%31 = OpAtomicCompareExchange %uint %32 %uint_1 %uint_0 %uint_0 %uint_100 %33 %32 = OpAtomicCompareExchange %uint %24 %uint_1 %uint_0 %uint_0 %uint_100 %33
%14 = OpCopyObject %uint %31 %14 = OpCopyObject %uint %32
OpStore %6 %14 OpStore %6 %14
%18 = OpLoad %ulong %4 %18 = OpLoad %ulong %4
%27 = OpIAdd %ulong %18 %ulong_4_0 %34 = OpConvertUToPtr %_ptr_Generic_uint %18
%34 = OpConvertUToPtr %_ptr_Generic_uint %27 %53 = OpBitcast %_ptr_Generic_uchar %34
%17 = OpLoad %uint %34 Aligned 4 %54 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %53 %ulong_4_0
%27 = OpBitcast %_ptr_Generic_uint %54
%17 = OpLoad %uint %27 Aligned 4
OpStore %7 %17 OpStore %7 %17
%19 = OpLoad %ulong %5 %19 = OpLoad %ulong %5
%20 = OpLoad %uint %6 %20 = OpLoad %uint %6
@ -62,8 +68,10 @@
OpStore %35 %20 Aligned 4 OpStore %35 %20 Aligned 4
%21 = OpLoad %ulong %5 %21 = OpLoad %ulong %5
%22 = OpLoad %uint %7 %22 = OpLoad %uint %7
%29 = OpIAdd %ulong %21 %ulong_4_1 %36 = OpConvertUToPtr %_ptr_Generic_uint %21
%36 = OpConvertUToPtr %_ptr_Generic_uint %29 %55 = OpBitcast %_ptr_Generic_uchar %36
OpStore %36 %22 Aligned 4 %56 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %55 %ulong_4_1
%29 = OpBitcast %_ptr_Generic_uint %56
OpStore %29 %22 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -10,14 +10,14 @@
%47 = OpExtInstImport "OpenCL.std" %47 = OpExtInstImport "OpenCL.std"
OpMemoryModel Physical64 OpenCL OpMemoryModel Physical64 OpenCL
OpEntryPoint Kernel %1 "atom_inc" OpEntryPoint Kernel %1 "atom_inc"
OpDecorate %42 LinkageAttributes "__zluda_ptx_impl__atom_relaxed_gpu_global_inc" Import
OpDecorate %38 LinkageAttributes "__zluda_ptx_impl__atom_relaxed_gpu_generic_inc" Import OpDecorate %38 LinkageAttributes "__zluda_ptx_impl__atom_relaxed_gpu_generic_inc" Import
OpDecorate %42 LinkageAttributes "__zluda_ptx_impl__atom_relaxed_gpu_global_inc" Import
%void = OpTypeVoid %void = OpTypeVoid
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint
%51 = OpTypeFunction %uint %_ptr_CrossWorkgroup_uint %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%53 = OpTypeFunction %uint %_ptr_Generic_uint %uint %51 = OpTypeFunction %uint %_ptr_Generic_uint %uint
%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint
%53 = OpTypeFunction %uint %_ptr_CrossWorkgroup_uint %uint
%ulong = OpTypeInt 64 0 %ulong = OpTypeInt 64 0
%55 = OpTypeFunction %void %ulong %ulong %55 = OpTypeFunction %void %ulong %ulong
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
@ -25,15 +25,17 @@
%uint_101 = OpConstant %uint 101 %uint_101 = OpConstant %uint 101
%uint_101_0 = OpConstant %uint 101 %uint_101_0 = OpConstant %uint 101
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%42 = OpFunction %uint None %51 %38 = OpFunction %uint None %51
%44 = OpFunctionParameter %_ptr_CrossWorkgroup_uint
%45 = OpFunctionParameter %uint
OpFunctionEnd
%38 = OpFunction %uint None %53
%40 = OpFunctionParameter %_ptr_Generic_uint %40 = OpFunctionParameter %_ptr_Generic_uint
%41 = OpFunctionParameter %uint %41 = OpFunctionParameter %uint
OpFunctionEnd OpFunctionEnd
%42 = OpFunction %uint None %53
%44 = OpFunctionParameter %_ptr_CrossWorkgroup_uint
%45 = OpFunctionParameter %uint
OpFunctionEnd
%1 = OpFunction %void None %55 %1 = OpFunction %void None %55
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
%10 = OpFunctionParameter %ulong %10 = OpFunctionParameter %ulong
@ -69,13 +71,17 @@
OpStore %34 %20 Aligned 4 OpStore %34 %20 Aligned 4
%21 = OpLoad %ulong %5 %21 = OpLoad %ulong %5
%22 = OpLoad %uint %7 %22 = OpLoad %uint %7
%28 = OpIAdd %ulong %21 %ulong_4 %35 = OpConvertUToPtr %_ptr_Generic_uint %21
%35 = OpConvertUToPtr %_ptr_Generic_uint %28 %60 = OpBitcast %_ptr_Generic_uchar %35
OpStore %35 %22 Aligned 4 %61 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %60 %ulong_4
%28 = OpBitcast %_ptr_Generic_uint %61
OpStore %28 %22 Aligned 4
%23 = OpLoad %ulong %5 %23 = OpLoad %ulong %5
%24 = OpLoad %uint %8 %24 = OpLoad %uint %8
%30 = OpIAdd %ulong %23 %ulong_8 %36 = OpConvertUToPtr %_ptr_Generic_uint %23
%36 = OpConvertUToPtr %_ptr_Generic_uint %30 %62 = OpBitcast %_ptr_Generic_uchar %36
OpStore %36 %24 Aligned 4 %63 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %62 %ulong_8
%30 = OpBitcast %_ptr_Generic_uint %63
OpStore %30 %24 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -20,6 +20,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%34 = OpFunction %uint None %43 %34 = OpFunction %uint None %43
%36 = OpFunctionParameter %uint %36 = OpFunctionParameter %uint
@ -48,14 +50,18 @@
%13 = OpLoad %uint %29 Aligned 4 %13 = OpLoad %uint %29 Aligned 4
OpStore %6 %13 OpStore %6 %13
%16 = OpLoad %ulong %4 %16 = OpLoad %ulong %4
%26 = OpIAdd %ulong %16 %ulong_4 %30 = OpConvertUToPtr %_ptr_Generic_uint %16
%30 = OpConvertUToPtr %_ptr_Generic_uint %26 %51 = OpBitcast %_ptr_Generic_uchar %30
%15 = OpLoad %uint %30 Aligned 4 %52 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %51 %ulong_4
%26 = OpBitcast %_ptr_Generic_uint %52
%15 = OpLoad %uint %26 Aligned 4
OpStore %7 %15 OpStore %7 %15
%18 = OpLoad %ulong %4 %18 = OpLoad %ulong %4
%28 = OpIAdd %ulong %18 %ulong_8 %31 = OpConvertUToPtr %_ptr_Generic_uint %18
%31 = OpConvertUToPtr %_ptr_Generic_uint %28 %53 = OpBitcast %_ptr_Generic_uchar %31
%17 = OpLoad %uint %31 Aligned 4 %54 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %53 %ulong_8
%28 = OpBitcast %_ptr_Generic_uint %54
%17 = OpLoad %uint %28 Aligned 4
OpStore %8 %17 OpStore %8 %17
%20 = OpLoad %uint %6 %20 = OpLoad %uint %6
%21 = OpLoad %uint %7 %21 = OpLoad %uint %7

View file

@ -20,6 +20,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%ulong_12 = OpConstant %ulong 12 %ulong_12 = OpConstant %ulong 12
%44 = OpFunction %uint None %54 %44 = OpFunction %uint None %54
@ -51,19 +53,25 @@
%14 = OpLoad %uint %35 Aligned 4 %14 = OpLoad %uint %35 Aligned 4
OpStore %6 %14 OpStore %6 %14
%17 = OpLoad %ulong %4 %17 = OpLoad %ulong %4
%30 = OpIAdd %ulong %17 %ulong_4 %36 = OpConvertUToPtr %_ptr_Generic_uint %17
%36 = OpConvertUToPtr %_ptr_Generic_uint %30 %62 = OpBitcast %_ptr_Generic_uchar %36
%16 = OpLoad %uint %36 Aligned 4 %63 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %62 %ulong_4
%30 = OpBitcast %_ptr_Generic_uint %63
%16 = OpLoad %uint %30 Aligned 4
OpStore %7 %16 OpStore %7 %16
%19 = OpLoad %ulong %4 %19 = OpLoad %ulong %4
%32 = OpIAdd %ulong %19 %ulong_8 %37 = OpConvertUToPtr %_ptr_Generic_uint %19
%37 = OpConvertUToPtr %_ptr_Generic_uint %32 %64 = OpBitcast %_ptr_Generic_uchar %37
%18 = OpLoad %uint %37 Aligned 4 %65 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %64 %ulong_8
%32 = OpBitcast %_ptr_Generic_uint %65
%18 = OpLoad %uint %32 Aligned 4
OpStore %8 %18 OpStore %8 %18
%21 = OpLoad %ulong %4 %21 = OpLoad %ulong %4
%34 = OpIAdd %ulong %21 %ulong_12 %38 = OpConvertUToPtr %_ptr_Generic_uint %21
%38 = OpConvertUToPtr %_ptr_Generic_uint %34 %66 = OpBitcast %_ptr_Generic_uchar %38
%20 = OpLoad %uint %38 Aligned 4 %67 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %66 %ulong_12
%34 = OpBitcast %_ptr_Generic_uint %67
%20 = OpLoad %uint %34 Aligned 4
OpStore %9 %20 OpStore %9 %20
%23 = OpLoad %uint %6 %23 = OpLoad %uint %6
%24 = OpLoad %uint %7 %24 = OpLoad %uint %7
@ -71,7 +79,7 @@
%26 = OpLoad %uint %9 %26 = OpLoad %uint %9
%40 = OpCopyObject %uint %23 %40 = OpCopyObject %uint %23
%41 = OpCopyObject %uint %24 %41 = OpCopyObject %uint %24
%39 = OpFunctionCall %uint %44 %41 %40 %25 %26 %39 = OpFunctionCall %uint %44 %40 %41 %25 %26
%22 = OpCopyObject %uint %39 %22 = OpCopyObject %uint %39
OpStore %6 %22 OpStore %6 %22
%27 = OpLoad %ulong %5 %27 = OpLoad %ulong %5

View file

@ -42,7 +42,7 @@
%23 = OpBitcast %_ptr_Function_ulong %10 %23 = OpBitcast %_ptr_Function_ulong %10
%24 = OpCopyObject %ulong %18 %24 = OpCopyObject %ulong %18
OpStore %23 %24 Aligned 8 OpStore %23 %24 Aligned 8
%43 = OpFunctionCall %void %1 %11 %10 %43 = OpFunctionCall %void %1 %10 %11
%19 = OpLoad %ulong %11 Aligned 8 %19 = OpLoad %ulong %11 Aligned 8
OpStore %9 %19 OpStore %9 %19
%20 = OpLoad %ulong %8 %20 = OpLoad %ulong %8
@ -52,8 +52,8 @@
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%1 = OpFunction %void None %44 %1 = OpFunction %void None %44
%27 = OpFunctionParameter %_ptr_Function_ulong
%28 = OpFunctionParameter %_ptr_Function_ulong %28 = OpFunctionParameter %_ptr_Function_ulong
%27 = OpFunctionParameter %_ptr_Function_ulong
%35 = OpLabel %35 = OpLabel
%29 = OpVariable %_ptr_Function_ulong Function %29 = OpVariable %_ptr_Function_ulong Function
%30 = OpLoad %ulong %28 Aligned 8 %30 = OpLoad %ulong %28 Aligned 8

View file

@ -18,6 +18,8 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_4_0 = OpConstant %ulong 4 %ulong_4_0 = OpConstant %ulong 4
%1 = OpFunction %void None %37 %1 = OpFunction %void None %37
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
@ -40,9 +42,11 @@
%12 = OpLoad %float %28 Aligned 4 %12 = OpLoad %float %28 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%25 = OpIAdd %ulong %15 %ulong_4 %29 = OpConvertUToPtr %_ptr_Generic_float %15
%29 = OpConvertUToPtr %_ptr_Generic_float %25 %44 = OpBitcast %_ptr_Generic_uchar %29
%14 = OpLoad %float %29 Aligned 4 %45 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %44 %ulong_4
%25 = OpBitcast %_ptr_Generic_float %45
%14 = OpLoad %float %25 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %float %6 %17 = OpLoad %float %6
%16 = OpExtInst %float %34 rint %17 %16 = OpExtInst %float %34 rint %17
@ -56,8 +60,10 @@
OpStore %30 %21 Aligned 4 OpStore %30 %21 Aligned 4
%22 = OpLoad %ulong %5 %22 = OpLoad %ulong %5
%23 = OpLoad %float %7 %23 = OpLoad %float %7
%27 = OpIAdd %ulong %22 %ulong_4_0 %31 = OpConvertUToPtr %_ptr_Generic_float %22
%31 = OpConvertUToPtr %_ptr_Generic_float %27 %46 = OpBitcast %_ptr_Generic_uchar %31
OpStore %31 %23 Aligned 4 %47 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %46 %ulong_4_0
%27 = OpBitcast %_ptr_Generic_float %47
OpStore %27 %23 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -18,6 +18,8 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_4_0 = OpConstant %ulong 4 %ulong_4_0 = OpConstant %ulong 4
%1 = OpFunction %void None %37 %1 = OpFunction %void None %37
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
@ -40,9 +42,11 @@
%12 = OpLoad %float %28 Aligned 4 %12 = OpLoad %float %28 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%25 = OpIAdd %ulong %15 %ulong_4 %29 = OpConvertUToPtr %_ptr_Generic_float %15
%29 = OpConvertUToPtr %_ptr_Generic_float %25 %44 = OpBitcast %_ptr_Generic_uchar %29
%14 = OpLoad %float %29 Aligned 4 %45 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %44 %ulong_4
%25 = OpBitcast %_ptr_Generic_float %45
%14 = OpLoad %float %25 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %float %6 %17 = OpLoad %float %6
%16 = OpExtInst %float %34 trunc %17 %16 = OpExtInst %float %34 trunc %17
@ -56,8 +60,10 @@
OpStore %30 %21 Aligned 4 OpStore %30 %21 Aligned 4
%22 = OpLoad %ulong %5 %22 = OpLoad %ulong %5
%23 = OpLoad %float %7 %23 = OpLoad %float %7
%27 = OpIAdd %ulong %22 %ulong_4_0 %31 = OpConvertUToPtr %_ptr_Generic_float %22
%31 = OpConvertUToPtr %_ptr_Generic_float %27 %46 = OpBitcast %_ptr_Generic_uchar %31
OpStore %31 %23 Aligned 4 %47 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %46 %ulong_4_0
%27 = OpBitcast %_ptr_Generic_float %47
OpStore %27 %23 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -21,8 +21,11 @@
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint
%ulong_4_0 = OpConstant %ulong 4 %ulong_4_0 = OpConstant %ulong 4
%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar
%1 = OpFunction %void None %45 %1 = OpFunction %void None %45
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -45,10 +48,12 @@
%12 = OpBitcast %uint %28 %12 = OpBitcast %uint %28
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%25 = OpIAdd %ulong %15 %ulong_4 %30 = OpConvertUToPtr %_ptr_Generic_float %15
%31 = OpConvertUToPtr %_ptr_Generic_float %25 %53 = OpBitcast %_ptr_Generic_uchar %30
%30 = OpLoad %float %31 Aligned 4 %54 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %53 %ulong_4
%14 = OpBitcast %uint %30 %25 = OpBitcast %_ptr_Generic_float %54
%31 = OpLoad %float %25 Aligned 4
%14 = OpBitcast %uint %31
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %uint %6 %17 = OpLoad %uint %6
%33 = OpBitcast %float %17 %33 = OpBitcast %float %17
@ -67,9 +72,11 @@
OpStore %36 %37 Aligned 4 OpStore %36 %37 Aligned 4
%22 = OpLoad %ulong %5 %22 = OpLoad %ulong %5
%23 = OpLoad %uint %7 %23 = OpLoad %uint %7
%27 = OpIAdd %ulong %22 %ulong_4_0 %38 = OpConvertUToPtr %_ptr_CrossWorkgroup_uint %22
%38 = OpConvertUToPtr %_ptr_CrossWorkgroup_uint %27 %57 = OpBitcast %_ptr_CrossWorkgroup_uchar %38
%58 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %57 %ulong_4_0
%27 = OpBitcast %_ptr_CrossWorkgroup_uint %58
%39 = OpCopyObject %uint %23 %39 = OpCopyObject %uint %23
OpStore %38 %39 Aligned 4 OpStore %27 %39 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -19,6 +19,8 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -40,9 +42,11 @@
%12 = OpLoad %float %23 Aligned 4 %12 = OpLoad %float %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_float %15
%24 = OpConvertUToPtr %_ptr_Generic_float %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %float %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_float %39
%14 = OpLoad %float %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %float %6 %17 = OpLoad %float %6
%18 = OpLoad %float %7 %18 = OpLoad %float %7

View file

@ -7,37 +7,30 @@
OpCapability Int64 OpCapability Int64
OpCapability Float16 OpCapability Float16
OpCapability Float64 OpCapability Float64
%30 = OpExtInstImport "OpenCL.std" %27 = OpExtInstImport "OpenCL.std"
OpMemoryModel Physical64 OpenCL OpMemoryModel Physical64 OpenCL
OpEntryPoint Kernel %2 "extern_shared" %1 OpEntryPoint Kernel %2 "extern_shared" %1
%void = OpTypeVoid %void = OpTypeVoid
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%_ptr_Workgroup__ptr_Workgroup_uint = OpTypePointer Workgroup %_ptr_Workgroup_uint %1 = OpVariable %_ptr_Workgroup_uint Workgroup
%1 = OpVariable %_ptr_Workgroup__ptr_Workgroup_uint Workgroup
%ulong = OpTypeInt 64 0 %ulong = OpTypeInt 64 0
%uchar = OpTypeInt 8 0 %uchar = OpTypeInt 8 0
%_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar %_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar
%38 = OpTypeFunction %void %ulong %ulong %_ptr_Workgroup_uchar %34 = OpTypeFunction %void %ulong %ulong %_ptr_Workgroup_uchar
%_ptr_Function__ptr_Workgroup_uchar = OpTypePointer Function %_ptr_Workgroup_uchar
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong %_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
%_ptr_Function__ptr_Workgroup_uint = OpTypePointer Function %_ptr_Workgroup_uint
%_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong %_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong
%2 = OpFunction %void None %38 %2 = OpFunction %void None %34
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
%26 = OpFunctionParameter %_ptr_Workgroup_uchar %24 = OpFunctionParameter %_ptr_Workgroup_uchar
%39 = OpLabel %22 = OpLabel
%27 = OpVariable %_ptr_Function__ptr_Workgroup_uchar Function
%3 = OpVariable %_ptr_Function_ulong Function %3 = OpVariable %_ptr_Function_ulong Function
%4 = OpVariable %_ptr_Function_ulong Function %4 = OpVariable %_ptr_Function_ulong Function
%5 = OpVariable %_ptr_Function_ulong Function %5 = OpVariable %_ptr_Function_ulong Function
%6 = OpVariable %_ptr_Function_ulong Function %6 = OpVariable %_ptr_Function_ulong Function
%7 = OpVariable %_ptr_Function_ulong Function %7 = OpVariable %_ptr_Function_ulong Function
OpStore %27 %26
OpBranch %24
%24 = OpLabel
OpStore %3 %8 OpStore %3 %8
OpStore %4 %9 OpStore %4 %9
%10 = OpLoad %ulong %3 Aligned 8 %10 = OpLoad %ulong %3 Aligned 8
@ -45,22 +38,20 @@
%11 = OpLoad %ulong %4 Aligned 8 %11 = OpLoad %ulong %4 Aligned 8
OpStore %6 %11 OpStore %6 %11
%13 = OpLoad %ulong %5 %13 = OpLoad %ulong %5
%20 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %13 %18 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %13
%12 = OpLoad %ulong %20 Aligned 8 %12 = OpLoad %ulong %18 Aligned 8
OpStore %7 %12 OpStore %7 %12
%28 = OpBitcast %_ptr_Function__ptr_Workgroup_uint %27 %14 = OpLoad %ulong %7
%14 = OpLoad %_ptr_Workgroup_uint %28 %25 = OpBitcast %_ptr_Workgroup_uint %24
%15 = OpLoad %ulong %7 %19 = OpBitcast %_ptr_Workgroup_ulong %25
%21 = OpBitcast %_ptr_Workgroup_ulong %14 OpStore %19 %14 Aligned 8
OpStore %21 %15 Aligned 8 %26 = OpBitcast %_ptr_Workgroup_uint %24
%29 = OpBitcast %_ptr_Function__ptr_Workgroup_uint %27 %20 = OpBitcast %_ptr_Workgroup_ulong %26
%17 = OpLoad %_ptr_Workgroup_uint %29 %15 = OpLoad %ulong %20 Aligned 8
%22 = OpBitcast %_ptr_Workgroup_ulong %17 OpStore %7 %15
%16 = OpLoad %ulong %22 Aligned 8 %16 = OpLoad %ulong %6
OpStore %7 %16 %17 = OpLoad %ulong %7
%18 = OpLoad %ulong %6 %21 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %16
%19 = OpLoad %ulong %7 OpStore %21 %17 Aligned 8
%23 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %18
OpStore %23 %19 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -7,87 +7,72 @@
OpCapability Int64 OpCapability Int64
OpCapability Float16 OpCapability Float16
OpCapability Float64 OpCapability Float64
%46 = OpExtInstImport "OpenCL.std" %40 = OpExtInstImport "OpenCL.std"
OpMemoryModel Physical64 OpenCL OpMemoryModel Physical64 OpenCL
OpEntryPoint Kernel %14 "extern_shared_call" %1 OpEntryPoint Kernel %12 "extern_shared_call" %1
OpDecorate %1 Alignment 4 OpDecorate %1 Alignment 4
%void = OpTypeVoid %void = OpTypeVoid
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
%_ptr_Workgroup__ptr_Workgroup_uint = OpTypePointer Workgroup %_ptr_Workgroup_uint %1 = OpVariable %_ptr_Workgroup_uint Workgroup
%1 = OpVariable %_ptr_Workgroup__ptr_Workgroup_uint Workgroup
%uchar = OpTypeInt 8 0 %uchar = OpTypeInt 8 0
%_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar %_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar
%53 = OpTypeFunction %void %_ptr_Workgroup_uchar %46 = OpTypeFunction %void %_ptr_Workgroup_uchar
%_ptr_Function__ptr_Workgroup_uchar = OpTypePointer Function %_ptr_Workgroup_uchar
%ulong = OpTypeInt 64 0 %ulong = OpTypeInt 64 0
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_Function__ptr_Workgroup_uint = OpTypePointer Function %_ptr_Workgroup_uint
%_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong %_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong
%ulong_2 = OpConstant %ulong 2 %ulong_2 = OpConstant %ulong 2
%60 = OpTypeFunction %void %ulong %ulong %_ptr_Workgroup_uchar %50 = OpTypeFunction %void %ulong %ulong %_ptr_Workgroup_uchar
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong %_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
%2 = OpFunction %void None %53 %2 = OpFunction %void None %46
%38 = OpFunctionParameter %_ptr_Workgroup_uchar %34 = OpFunctionParameter %_ptr_Workgroup_uchar
%54 = OpLabel %11 = OpLabel
%39 = OpVariable %_ptr_Function__ptr_Workgroup_uchar Function
%3 = OpVariable %_ptr_Function_ulong Function %3 = OpVariable %_ptr_Function_ulong Function
OpStore %39 %38 %35 = OpBitcast %_ptr_Workgroup_uint %34
OpBranch %13 %9 = OpBitcast %_ptr_Workgroup_ulong %35
%13 = OpLabel %4 = OpLoad %ulong %9 Aligned 8
%40 = OpBitcast %_ptr_Function__ptr_Workgroup_uint %39
%5 = OpLoad %_ptr_Workgroup_uint %40
%11 = OpBitcast %_ptr_Workgroup_ulong %5
%4 = OpLoad %ulong %11 Aligned 8
OpStore %3 %4 OpStore %3 %4
%6 = OpLoad %ulong %3
%5 = OpIAdd %ulong %6 %ulong_2
OpStore %3 %5
%7 = OpLoad %ulong %3 %7 = OpLoad %ulong %3
%6 = OpIAdd %ulong %7 %ulong_2 %36 = OpBitcast %_ptr_Workgroup_uint %34
OpStore %3 %6 %10 = OpBitcast %_ptr_Workgroup_ulong %36
%41 = OpBitcast %_ptr_Function__ptr_Workgroup_uint %39 OpStore %10 %7 Aligned 8
%8 = OpLoad %_ptr_Workgroup_uint %41
%9 = OpLoad %ulong %3
%12 = OpBitcast %_ptr_Workgroup_ulong %8
OpStore %12 %9 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%14 = OpFunction %void None %60 %12 = OpFunction %void None %50
%20 = OpFunctionParameter %ulong %18 = OpFunctionParameter %ulong
%21 = OpFunctionParameter %ulong %19 = OpFunctionParameter %ulong
%42 = OpFunctionParameter %_ptr_Workgroup_uchar %37 = OpFunctionParameter %_ptr_Workgroup_uchar
%61 = OpLabel %32 = OpLabel
%43 = OpVariable %_ptr_Function__ptr_Workgroup_uchar Function %13 = OpVariable %_ptr_Function_ulong Function
%14 = OpVariable %_ptr_Function_ulong Function
%15 = OpVariable %_ptr_Function_ulong Function %15 = OpVariable %_ptr_Function_ulong Function
%16 = OpVariable %_ptr_Function_ulong Function %16 = OpVariable %_ptr_Function_ulong Function
%17 = OpVariable %_ptr_Function_ulong Function %17 = OpVariable %_ptr_Function_ulong Function
%18 = OpVariable %_ptr_Function_ulong Function OpStore %13 %18
%19 = OpVariable %_ptr_Function_ulong Function OpStore %14 %19
OpStore %43 %42 %20 = OpLoad %ulong %13 Aligned 8
OpBranch %36
%36 = OpLabel
OpStore %15 %20 OpStore %15 %20
%21 = OpLoad %ulong %14 Aligned 8
OpStore %16 %21 OpStore %16 %21
%22 = OpLoad %ulong %15 Aligned 8 %23 = OpLoad %ulong %15
%28 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %23
%22 = OpLoad %ulong %28 Aligned 8
OpStore %17 %22 OpStore %17 %22
%23 = OpLoad %ulong %16 Aligned 8 %24 = OpLoad %ulong %17
OpStore %18 %23 %38 = OpBitcast %_ptr_Workgroup_uint %37
%25 = OpLoad %ulong %17 %29 = OpBitcast %_ptr_Workgroup_ulong %38
%32 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %25 OpStore %29 %24 Aligned 8
%24 = OpLoad %ulong %32 Aligned 8 %52 = OpFunctionCall %void %2 %37
OpStore %19 %24 %39 = OpBitcast %_ptr_Workgroup_uint %37
%44 = OpBitcast %_ptr_Function__ptr_Workgroup_uint %43 %30 = OpBitcast %_ptr_Workgroup_ulong %39
%26 = OpLoad %_ptr_Workgroup_uint %44 %25 = OpLoad %ulong %30 Aligned 8
%27 = OpLoad %ulong %19 OpStore %17 %25
%33 = OpBitcast %_ptr_Workgroup_ulong %26 %26 = OpLoad %ulong %16
OpStore %33 %27 Aligned 8 %27 = OpLoad %ulong %17
%63 = OpFunctionCall %void %2 %42 %31 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %26
%45 = OpBitcast %_ptr_Function__ptr_Workgroup_uint %43 OpStore %31 %27 Aligned 8
%29 = OpLoad %_ptr_Workgroup_uint %45
%34 = OpBitcast %_ptr_Workgroup_ulong %29
%28 = OpLoad %ulong %34 Aligned 8
OpStore %19 %28
%30 = OpLoad %ulong %18
%31 = OpLoad %ulong %19
%35 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %30
OpStore %35 %31 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -18,6 +18,8 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%1 = OpFunction %void None %38 %1 = OpFunction %void None %38
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -41,14 +43,18 @@
%13 = OpLoad %float %29 Aligned 4 %13 = OpLoad %float %29 Aligned 4
OpStore %6 %13 OpStore %6 %13
%16 = OpLoad %ulong %4 %16 = OpLoad %ulong %4
%26 = OpIAdd %ulong %16 %ulong_4 %30 = OpConvertUToPtr %_ptr_Generic_float %16
%30 = OpConvertUToPtr %_ptr_Generic_float %26 %45 = OpBitcast %_ptr_Generic_uchar %30
%15 = OpLoad %float %30 Aligned 4 %46 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %45 %ulong_4
%26 = OpBitcast %_ptr_Generic_float %46
%15 = OpLoad %float %26 Aligned 4
OpStore %7 %15 OpStore %7 %15
%18 = OpLoad %ulong %4 %18 = OpLoad %ulong %4
%28 = OpIAdd %ulong %18 %ulong_8 %31 = OpConvertUToPtr %_ptr_Generic_float %18
%31 = OpConvertUToPtr %_ptr_Generic_float %28 %47 = OpBitcast %_ptr_Generic_uchar %31
%17 = OpLoad %float %31 Aligned 4 %48 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %47 %ulong_8
%28 = OpBitcast %_ptr_Generic_float %48
%17 = OpLoad %float %28 Aligned 4
OpStore %8 %17 OpStore %8 %17
%20 = OpLoad %float %6 %20 = OpLoad %float %6
%21 = OpLoad %float %7 %21 = OpLoad %float %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_4_0 = OpConstant %ulong 4 %ulong_4_0 = OpConstant %ulong 4
%1 = OpFunction %void None %33 %1 = OpFunction %void None %33
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
@ -40,9 +42,11 @@
%12 = OpLoad %uint %24 Aligned 4 %12 = OpLoad %uint %24 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%21 = OpIAdd %ulong %15 %ulong_4 %25 = OpConvertUToPtr %_ptr_Generic_uint %15
%25 = OpConvertUToPtr %_ptr_Generic_uint %21 %40 = OpBitcast %_ptr_Generic_uchar %25
%14 = OpLoad %uint %25 Aligned 4 %41 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %40 %ulong_4
%21 = OpBitcast %_ptr_Generic_uint %41
%14 = OpLoad %uint %21 Aligned 4
OpStore %7 %14 OpStore %7 %14
%16 = OpLoad %ulong %5 %16 = OpLoad %ulong %5
%17 = OpLoad %uint %7 %17 = OpLoad %uint %7
@ -50,8 +54,10 @@
OpStore %26 %17 Aligned 4 OpStore %26 %17 Aligned 4
%18 = OpLoad %ulong %5 %18 = OpLoad %ulong %5
%19 = OpLoad %uint %6 %19 = OpLoad %uint %6
%23 = OpIAdd %ulong %18 %ulong_4_0 %27 = OpConvertUToPtr %_ptr_Generic_uint %18
%27 = OpConvertUToPtr %_ptr_Generic_uint %23 %42 = OpBitcast %_ptr_Generic_uchar %27
OpStore %27 %19 Aligned 4 %43 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %42 %ulong_4_0
%23 = OpBitcast %_ptr_Generic_uint %43
OpStore %23 %19 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%ulong_4_0 = OpConstant %ulong 4 %ulong_4_0 = OpConstant %ulong 4
%ulong_8_0 = OpConstant %ulong 8 %ulong_8_0 = OpConstant %ulong 8
@ -44,20 +46,24 @@
%14 = OpLoad %uint %38 Aligned 4 %14 = OpLoad %uint %38 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %ulong %4 %17 = OpLoad %ulong %4
%31 = OpIAdd %ulong %17 %ulong_4 %39 = OpConvertUToPtr %_ptr_Generic_uint %17
%39 = OpConvertUToPtr %_ptr_Generic_uint %31 %56 = OpBitcast %_ptr_Generic_uchar %39
%16 = OpLoad %uint %39 Aligned 4 %57 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %56 %ulong_4
%31 = OpBitcast %_ptr_Generic_uint %57
%16 = OpLoad %uint %31 Aligned 4
OpStore %8 %16 OpStore %8 %16
%19 = OpLoad %ulong %4 %19 = OpLoad %ulong %4
%33 = OpIAdd %ulong %19 %ulong_8 %40 = OpConvertUToPtr %_ptr_Generic_uint %19
%40 = OpConvertUToPtr %_ptr_Generic_uint %33 %58 = OpBitcast %_ptr_Generic_uchar %40
%18 = OpLoad %uint %40 Aligned 4 %59 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %58 %ulong_8
%33 = OpBitcast %_ptr_Generic_uint %59
%18 = OpLoad %uint %33 Aligned 4
OpStore %9 %18 OpStore %9 %18
%21 = OpLoad %uint %7 %21 = OpLoad %uint %7
%22 = OpLoad %uint %8 %22 = OpLoad %uint %8
%23 = OpLoad %uint %9 %23 = OpLoad %uint %9
%54 = OpIMul %uint %21 %22 %60 = OpIMul %uint %21 %22
%20 = OpIAdd %uint %23 %54 %20 = OpIAdd %uint %23 %60
OpStore %6 %20 OpStore %6 %20
%24 = OpLoad %ulong %5 %24 = OpLoad %ulong %5
%25 = OpLoad %uint %6 %25 = OpLoad %uint %6
@ -65,13 +71,17 @@
OpStore %41 %25 Aligned 4 OpStore %41 %25 Aligned 4
%26 = OpLoad %ulong %5 %26 = OpLoad %ulong %5
%27 = OpLoad %uint %6 %27 = OpLoad %uint %6
%35 = OpIAdd %ulong %26 %ulong_4_0 %42 = OpConvertUToPtr %_ptr_Generic_uint %26
%42 = OpConvertUToPtr %_ptr_Generic_uint %35 %61 = OpBitcast %_ptr_Generic_uchar %42
OpStore %42 %27 Aligned 4 %62 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %61 %ulong_4_0
%35 = OpBitcast %_ptr_Generic_uint %62
OpStore %35 %27 Aligned 4
%28 = OpLoad %ulong %5 %28 = OpLoad %ulong %5
%29 = OpLoad %uint %6 %29 = OpLoad %uint %6
%37 = OpIAdd %ulong %28 %ulong_8_0 %43 = OpConvertUToPtr %_ptr_Generic_uint %28
%43 = OpConvertUToPtr %_ptr_Generic_uint %37 %63 = OpBitcast %_ptr_Generic_uchar %43
OpStore %43 %29 Aligned 4 %64 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %63 %ulong_8_0
%37 = OpBitcast %_ptr_Generic_uint %64
OpStore %37 %29 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %uint %23 Aligned 4 %12 = OpLoad %uint %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_uint %15
%24 = OpConvertUToPtr %_ptr_Generic_uint %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %uint %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_uint %39
%14 = OpLoad %uint %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %uint %6 %17 = OpLoad %uint %6
%18 = OpLoad %uint %7 %18 = OpLoad %uint %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %uint %23 Aligned 4 %12 = OpLoad %uint %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_uint %15
%24 = OpConvertUToPtr %_ptr_Generic_uint %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %uint %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_uint %39
%14 = OpLoad %uint %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %uint %6 %17 = OpLoad %uint %6
%18 = OpLoad %uint %7 %18 = OpLoad %uint %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %float %23 Aligned 4 %12 = OpLoad %float %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_float %15
%24 = OpConvertUToPtr %_ptr_Generic_float %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %float %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_float %39
%14 = OpLoad %float %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %float %6 %17 = OpLoad %float %6
%18 = OpLoad %float %7 %18 = OpLoad %float %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %float %23 Aligned 4 %12 = OpLoad %float %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_float %15
%24 = OpConvertUToPtr %_ptr_Generic_float %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %float %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_float %39
%14 = OpLoad %float %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %float %6 %17 = OpLoad %float %6
%18 = OpLoad %float %7 %18 = OpLoad %float %7

View file

@ -18,7 +18,9 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint %_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%_struct_38 = OpTypeStruct %uint %uint %uchar = OpTypeInt 8 0
%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar
%_struct_42 = OpTypeStruct %uint %uint
%v2uint = OpTypeVector %uint 2 %v2uint = OpTypeVector %uint 2
%_ptr_Generic_ulong = OpTypePointer Generic %ulong %_ptr_Generic_ulong = OpTypePointer Generic %ulong
%1 = OpFunction %void None %33 %1 = OpFunction %void None %33
@ -43,17 +45,19 @@
%13 = OpLoad %uint %24 Aligned 4 %13 = OpLoad %uint %24 Aligned 4
OpStore %6 %13 OpStore %6 %13
%16 = OpLoad %ulong %4 %16 = OpLoad %ulong %4
%23 = OpIAdd %ulong %16 %ulong_4 %25 = OpConvertUToPtr %_ptr_CrossWorkgroup_uint %16
%25 = OpConvertUToPtr %_ptr_CrossWorkgroup_uint %23 %40 = OpBitcast %_ptr_CrossWorkgroup_uchar %25
%15 = OpLoad %uint %25 Aligned 4 %41 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %40 %ulong_4
%23 = OpBitcast %_ptr_CrossWorkgroup_uint %41
%15 = OpLoad %uint %23 Aligned 4
OpStore %7 %15 OpStore %7 %15
%18 = OpLoad %uint %6 %18 = OpLoad %uint %6
%19 = OpLoad %uint %7 %19 = OpLoad %uint %7
%39 = OpSMulExtended %_struct_38 %18 %19 %43 = OpSMulExtended %_struct_42 %18 %19
%40 = OpCompositeExtract %uint %39 0 %44 = OpCompositeExtract %uint %43 0
%41 = OpCompositeExtract %uint %39 1 %45 = OpCompositeExtract %uint %43 1
%43 = OpCompositeConstruct %v2uint %40 %41 %47 = OpCompositeConstruct %v2uint %44 %45
%17 = OpBitcast %ulong %43 %17 = OpBitcast %ulong %47
OpStore %8 %17 OpStore %8 %17
%20 = OpLoad %ulong %5 %20 = OpLoad %ulong %5
%21 = OpLoad %ulong %8 %21 = OpLoad %ulong %8

View file

@ -16,6 +16,8 @@
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_Generic_ulong = OpTypePointer Generic %ulong %_ptr_Generic_ulong = OpTypePointer Generic %ulong
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %34 %1 = OpFunction %void None %34
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -37,9 +39,11 @@
%12 = OpLoad %ulong %23 Aligned 8 %12 = OpLoad %ulong %23 Aligned 8
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_8 %24 = OpConvertUToPtr %_ptr_Generic_ulong %15
%24 = OpConvertUToPtr %_ptr_Generic_ulong %22 %39 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %ulong %24 Aligned 8 %40 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %39 %ulong_8
%22 = OpBitcast %_ptr_Generic_ulong %40
%14 = OpLoad %ulong %22 Aligned 8
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %ulong %6 %17 = OpLoad %ulong %6
%18 = OpLoad %ulong %7 %18 = OpLoad %ulong %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_bool = OpTypePointer Function %bool %_ptr_Function_bool = OpTypePointer Function %bool
%_ptr_Generic_ulong = OpTypePointer Generic %ulong %_ptr_Generic_ulong = OpTypePointer Generic %ulong
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%true = OpConstantTrue %bool %true = OpConstantTrue %bool
%false = OpConstantFalse %bool %false = OpConstantFalse %bool
%ulong_1 = OpConstant %ulong 1 %ulong_1 = OpConstant %ulong 1
@ -45,9 +47,11 @@
%18 = OpLoad %ulong %37 Aligned 8 %18 = OpLoad %ulong %37 Aligned 8
OpStore %6 %18 OpStore %6 %18
%21 = OpLoad %ulong %4 %21 = OpLoad %ulong %4
%34 = OpIAdd %ulong %21 %ulong_8 %38 = OpConvertUToPtr %_ptr_Generic_ulong %21
%38 = OpConvertUToPtr %_ptr_Generic_ulong %34 %52 = OpBitcast %_ptr_Generic_uchar %38
%20 = OpLoad %ulong %38 Aligned 8 %53 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %52 %ulong_8
%34 = OpBitcast %_ptr_Generic_ulong %53
%20 = OpLoad %ulong %34 Aligned 8
OpStore %7 %20 OpStore %7 %20
%23 = OpLoad %ulong %6 %23 = OpLoad %ulong %6
%24 = OpLoad %ulong %7 %24 = OpLoad %ulong %7

View file

@ -26,6 +26,7 @@
%ulong_0 = OpConstant %ulong 0 %ulong_0 = OpConstant %ulong 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar %_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_0_0 = OpConstant %ulong 0 %ulong_0_0 = OpConstant %ulong 0
%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar
%1 = OpFunction %void None %37 %1 = OpFunction %void None %37
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -48,10 +49,10 @@
%12 = OpCopyObject %ulong %24 %12 = OpCopyObject %ulong %24
OpStore %7 %12 OpStore %7 %12
%14 = OpLoad %ulong %7 %14 = OpLoad %ulong %7
%26 = OpCopyObject %ulong %14 %19 = OpIAdd %ulong %14 %ulong_1
%19 = OpIAdd %ulong %26 %ulong_1 %26 = OpBitcast %_ptr_Generic_ulong %4
%27 = OpBitcast %_ptr_Generic_ulong %4 %27 = OpCopyObject %ulong %19
OpStore %27 %19 Aligned 8 OpStore %26 %27 Aligned 8
%28 = OpBitcast %_ptr_Generic_ulong %4 %28 = OpBitcast %_ptr_Generic_ulong %4
%47 = OpBitcast %_ptr_Generic_uchar %28 %47 = OpBitcast %_ptr_Generic_uchar %28
%48 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %47 %ulong_0 %48 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %47 %ulong_0
@ -61,9 +62,11 @@
OpStore %7 %15 OpStore %7 %15
%16 = OpLoad %ulong %6 %16 = OpLoad %ulong %6
%17 = OpLoad %ulong %7 %17 = OpLoad %ulong %7
%23 = OpIAdd %ulong %16 %ulong_0_0 %30 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %16
%30 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %23 %50 = OpBitcast %_ptr_CrossWorkgroup_uchar %30
%51 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %50 %ulong_0_0
%23 = OpBitcast %_ptr_CrossWorkgroup_ulong %51
%31 = OpCopyObject %ulong %17 %31 = OpCopyObject %ulong %17
OpStore %30 %31 Aligned 8 OpStore %23 %31 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %uint %23 Aligned 4 %12 = OpLoad %uint %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_uint %15
%24 = OpConvertUToPtr %_ptr_Generic_uint %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %uint %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_uint %39
%14 = OpLoad %uint %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %uint %6 %17 = OpLoad %uint %6
%18 = OpLoad %uint %7 %18 = OpLoad %uint %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_ushort = OpTypePointer Function %ushort %_ptr_Function_ushort = OpTypePointer Function %ushort
%_ptr_Generic_ushort = OpTypePointer Generic %ushort %_ptr_Generic_ushort = OpTypePointer Generic %ushort
%ulong_2 = OpConstant %ulong 2 %ulong_2 = OpConstant %ulong 2
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%bool = OpTypeBool %bool = OpTypeBool
%false = OpConstantFalse %bool %false = OpConstantFalse %bool
%1 = OpFunction %void None %32 %1 = OpFunction %void None %32
@ -41,9 +43,11 @@
%12 = OpLoad %ushort %24 Aligned 2 %12 = OpLoad %ushort %24 Aligned 2
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_2 %25 = OpConvertUToPtr %_ptr_Generic_ushort %15
%25 = OpConvertUToPtr %_ptr_Generic_ushort %22 %39 = OpBitcast %_ptr_Generic_uchar %25
%14 = OpLoad %ushort %25 Aligned 2 %40 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %39 %ulong_2
%22 = OpBitcast %_ptr_Generic_ushort %40
%14 = OpLoad %ushort %22 Aligned 2
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %ushort %6 %17 = OpLoad %ushort %6
%18 = OpLoad %ushort %7 %18 = OpLoad %ushort %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_ushort = OpTypePointer Function %ushort %_ptr_Function_ushort = OpTypePointer Function %ushort
%_ptr_Generic_ushort = OpTypePointer Generic %ushort %_ptr_Generic_ushort = OpTypePointer Generic %ushort
%ulong_2 = OpConstant %ulong 2 %ulong_2 = OpConstant %ulong 2
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%bool = OpTypeBool %bool = OpTypeBool
%true = OpConstantTrue %bool %true = OpConstantTrue %bool
%1 = OpFunction %void None %32 %1 = OpFunction %void None %32
@ -41,9 +43,11 @@
%12 = OpLoad %ushort %24 Aligned 2 %12 = OpLoad %ushort %24 Aligned 2
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_2 %25 = OpConvertUToPtr %_ptr_Generic_ushort %15
%25 = OpConvertUToPtr %_ptr_Generic_ushort %22 %39 = OpBitcast %_ptr_Generic_uchar %25
%14 = OpLoad %ushort %25 Aligned 2 %40 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %39 %ulong_2
%22 = OpBitcast %_ptr_Generic_ushort %40
%14 = OpLoad %ushort %22 Aligned 2
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %ushort %6 %17 = OpLoad %ushort %6
%18 = OpLoad %ushort %7 %18 = OpLoad %ushort %7

View file

@ -18,6 +18,8 @@
%_ptr_Function_bool = OpTypePointer Function %bool %_ptr_Function_bool = OpTypePointer Function %bool
%_ptr_Generic_ulong = OpTypePointer Generic %ulong %_ptr_Generic_ulong = OpTypePointer Generic %ulong
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_1 = OpConstant %ulong 1 %ulong_1 = OpConstant %ulong 1
%ulong_2 = OpConstant %ulong 2 %ulong_2 = OpConstant %ulong 2
%1 = OpFunction %void None %43 %1 = OpFunction %void None %43
@ -43,9 +45,11 @@
%18 = OpLoad %ulong %35 Aligned 8 %18 = OpLoad %ulong %35 Aligned 8
OpStore %6 %18 OpStore %6 %18
%21 = OpLoad %ulong %4 %21 = OpLoad %ulong %4
%32 = OpIAdd %ulong %21 %ulong_8 %36 = OpConvertUToPtr %_ptr_Generic_ulong %21
%36 = OpConvertUToPtr %_ptr_Generic_ulong %32 %50 = OpBitcast %_ptr_Generic_uchar %36
%20 = OpLoad %ulong %36 Aligned 8 %51 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %50 %ulong_8
%32 = OpBitcast %_ptr_Generic_ulong %51
%20 = OpLoad %ulong %32 Aligned 8
OpStore %7 %20 OpStore %7 %20
%23 = OpLoad %ulong %6 %23 = OpLoad %ulong %6
%24 = OpLoad %ulong %7 %24 = OpLoad %ulong %7

View file

@ -20,6 +20,8 @@
%_ptr_Function_bool = OpTypePointer Function %bool %_ptr_Function_bool = OpTypePointer Function %bool
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %43 %1 = OpFunction %void None %43
%14 = OpFunctionParameter %ulong %14 = OpFunctionParameter %ulong
%15 = OpFunctionParameter %ulong %15 = OpFunctionParameter %ulong
@ -43,9 +45,11 @@
%18 = OpLoad %float %35 Aligned 4 %18 = OpLoad %float %35 Aligned 4
OpStore %6 %18 OpStore %6 %18
%21 = OpLoad %ulong %4 %21 = OpLoad %ulong %4
%34 = OpIAdd %ulong %21 %ulong_4 %36 = OpConvertUToPtr %_ptr_Generic_float %21
%36 = OpConvertUToPtr %_ptr_Generic_float %34 %52 = OpBitcast %_ptr_Generic_uchar %36
%20 = OpLoad %float %36 Aligned 4 %53 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %52 %ulong_4
%34 = OpBitcast %_ptr_Generic_float %53
%20 = OpLoad %float %34 Aligned 4
OpStore %7 %20 OpStore %7 %20
%23 = OpLoad %float %6 %23 = OpLoad %float %6
%24 = OpLoad %float %7 %24 = OpLoad %float %7

View file

@ -20,6 +20,8 @@
%_ptr_Function_bool = OpTypePointer Function %bool %_ptr_Function_bool = OpTypePointer Function %bool
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %43 %1 = OpFunction %void None %43
%14 = OpFunctionParameter %ulong %14 = OpFunctionParameter %ulong
%15 = OpFunctionParameter %ulong %15 = OpFunctionParameter %ulong
@ -43,9 +45,11 @@
%18 = OpLoad %float %35 Aligned 4 %18 = OpLoad %float %35 Aligned 4
OpStore %6 %18 OpStore %6 %18
%21 = OpLoad %ulong %4 %21 = OpLoad %ulong %4
%34 = OpIAdd %ulong %21 %ulong_4 %36 = OpConvertUToPtr %_ptr_Generic_float %21
%36 = OpConvertUToPtr %_ptr_Generic_float %34 %52 = OpBitcast %_ptr_Generic_uchar %36
%20 = OpLoad %float %36 Aligned 4 %53 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %52 %ulong_4
%34 = OpBitcast %_ptr_Generic_float %53
%20 = OpLoad %float %34 Aligned 4
OpStore %7 %20 OpStore %7 %20
%23 = OpLoad %float %6 %23 = OpLoad %float %6
%24 = OpLoad %float %7 %24 = OpLoad %float %7

View file

@ -22,6 +22,8 @@
%_ptr_Function_bool = OpTypePointer Function %bool %_ptr_Function_bool = OpTypePointer Function %bool
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%ulong_12 = OpConstant %ulong 12 %ulong_12 = OpConstant %ulong 12
%ulong_16 = OpConstant %ulong 16 %ulong_16 = OpConstant %ulong 16
@ -69,45 +71,59 @@
%36 = OpLoad %float %116 Aligned 4 %36 = OpLoad %float %116 Aligned 4
OpStore %6 %36 OpStore %6 %36
%39 = OpLoad %ulong %4 %39 = OpLoad %ulong %4
%89 = OpIAdd %ulong %39 %ulong_4 %117 = OpConvertUToPtr %_ptr_Generic_float %39
%117 = OpConvertUToPtr %_ptr_Generic_float %89 %144 = OpBitcast %_ptr_Generic_uchar %117
%38 = OpLoad %float %117 Aligned 4 %145 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %144 %ulong_4
%89 = OpBitcast %_ptr_Generic_float %145
%38 = OpLoad %float %89 Aligned 4
OpStore %7 %38 OpStore %7 %38
%41 = OpLoad %ulong %4 %41 = OpLoad %ulong %4
%91 = OpIAdd %ulong %41 %ulong_8 %118 = OpConvertUToPtr %_ptr_Generic_float %41
%118 = OpConvertUToPtr %_ptr_Generic_float %91 %146 = OpBitcast %_ptr_Generic_uchar %118
%40 = OpLoad %float %118 Aligned 4 %147 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %146 %ulong_8
%91 = OpBitcast %_ptr_Generic_float %147
%40 = OpLoad %float %91 Aligned 4
OpStore %8 %40 OpStore %8 %40
%43 = OpLoad %ulong %4 %43 = OpLoad %ulong %4
%93 = OpIAdd %ulong %43 %ulong_12 %119 = OpConvertUToPtr %_ptr_Generic_float %43
%119 = OpConvertUToPtr %_ptr_Generic_float %93 %148 = OpBitcast %_ptr_Generic_uchar %119
%42 = OpLoad %float %119 Aligned 4 %149 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %148 %ulong_12
%93 = OpBitcast %_ptr_Generic_float %149
%42 = OpLoad %float %93 Aligned 4
OpStore %9 %42 OpStore %9 %42
%45 = OpLoad %ulong %4 %45 = OpLoad %ulong %4
%95 = OpIAdd %ulong %45 %ulong_16 %120 = OpConvertUToPtr %_ptr_Generic_float %45
%120 = OpConvertUToPtr %_ptr_Generic_float %95 %150 = OpBitcast %_ptr_Generic_uchar %120
%44 = OpLoad %float %120 Aligned 4 %151 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %150 %ulong_16
%95 = OpBitcast %_ptr_Generic_float %151
%44 = OpLoad %float %95 Aligned 4
OpStore %10 %44 OpStore %10 %44
%47 = OpLoad %ulong %4 %47 = OpLoad %ulong %4
%97 = OpIAdd %ulong %47 %ulong_20 %121 = OpConvertUToPtr %_ptr_Generic_float %47
%121 = OpConvertUToPtr %_ptr_Generic_float %97 %152 = OpBitcast %_ptr_Generic_uchar %121
%46 = OpLoad %float %121 Aligned 4 %153 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %152 %ulong_20
%97 = OpBitcast %_ptr_Generic_float %153
%46 = OpLoad %float %97 Aligned 4
OpStore %11 %46 OpStore %11 %46
%49 = OpLoad %ulong %4 %49 = OpLoad %ulong %4
%99 = OpIAdd %ulong %49 %ulong_24 %122 = OpConvertUToPtr %_ptr_Generic_float %49
%122 = OpConvertUToPtr %_ptr_Generic_float %99 %154 = OpBitcast %_ptr_Generic_uchar %122
%48 = OpLoad %float %122 Aligned 4 %155 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %154 %ulong_24
%99 = OpBitcast %_ptr_Generic_float %155
%48 = OpLoad %float %99 Aligned 4
OpStore %12 %48 OpStore %12 %48
%51 = OpLoad %ulong %4 %51 = OpLoad %ulong %4
%101 = OpIAdd %ulong %51 %ulong_28 %123 = OpConvertUToPtr %_ptr_Generic_float %51
%123 = OpConvertUToPtr %_ptr_Generic_float %101 %156 = OpBitcast %_ptr_Generic_uchar %123
%50 = OpLoad %float %123 Aligned 4 %157 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %156 %ulong_28
%101 = OpBitcast %_ptr_Generic_float %157
%50 = OpLoad %float %101 Aligned 4
OpStore %13 %50 OpStore %13 %50
%53 = OpLoad %float %6 %53 = OpLoad %float %6
%54 = OpLoad %float %7 %54 = OpLoad %float %7
%142 = OpIsNan %bool %53 %158 = OpIsNan %bool %53
%143 = OpIsNan %bool %54 %159 = OpIsNan %bool %54
%52 = OpLogicalOr %bool %142 %143 %52 = OpLogicalOr %bool %158 %159
OpStore %15 %52 OpStore %15 %52
%55 = OpLoad %bool %15 %55 = OpLoad %bool %15
OpBranchConditional %55 %16 %17 OpBranchConditional %55 %16 %17
@ -129,9 +145,9 @@
OpStore %124 %60 Aligned 4 OpStore %124 %60 Aligned 4
%62 = OpLoad %float %8 %62 = OpLoad %float %8
%63 = OpLoad %float %9 %63 = OpLoad %float %9
%145 = OpIsNan %bool %62 %161 = OpIsNan %bool %62
%146 = OpIsNan %bool %63 %162 = OpIsNan %bool %63
%61 = OpLogicalOr %bool %145 %146 %61 = OpLogicalOr %bool %161 %162
OpStore %15 %61 OpStore %15 %61
%64 = OpLoad %bool %15 %64 = OpLoad %bool %15
OpBranchConditional %64 %20 %21 OpBranchConditional %64 %20 %21
@ -149,14 +165,16 @@
%23 = OpLabel %23 = OpLabel
%68 = OpLoad %ulong %5 %68 = OpLoad %ulong %5
%69 = OpLoad %uint %14 %69 = OpLoad %uint %14
%107 = OpIAdd %ulong %68 %ulong_4_0 %125 = OpConvertUToPtr %_ptr_Generic_uint %68
%125 = OpConvertUToPtr %_ptr_Generic_uint %107 %163 = OpBitcast %_ptr_Generic_uchar %125
OpStore %125 %69 Aligned 4 %164 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %163 %ulong_4_0
%107 = OpBitcast %_ptr_Generic_uint %164
OpStore %107 %69 Aligned 4
%71 = OpLoad %float %10 %71 = OpLoad %float %10
%72 = OpLoad %float %11 %72 = OpLoad %float %11
%147 = OpIsNan %bool %71 %165 = OpIsNan %bool %71
%148 = OpIsNan %bool %72 %166 = OpIsNan %bool %72
%70 = OpLogicalOr %bool %147 %148 %70 = OpLogicalOr %bool %165 %166
OpStore %15 %70 OpStore %15 %70
%73 = OpLoad %bool %15 %73 = OpLoad %bool %15
OpBranchConditional %73 %24 %25 OpBranchConditional %73 %24 %25
@ -174,14 +192,16 @@
%27 = OpLabel %27 = OpLabel
%77 = OpLoad %ulong %5 %77 = OpLoad %ulong %5
%78 = OpLoad %uint %14 %78 = OpLoad %uint %14
%111 = OpIAdd %ulong %77 %ulong_8_0 %126 = OpConvertUToPtr %_ptr_Generic_uint %77
%126 = OpConvertUToPtr %_ptr_Generic_uint %111 %167 = OpBitcast %_ptr_Generic_uchar %126
OpStore %126 %78 Aligned 4 %168 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %167 %ulong_8_0
%111 = OpBitcast %_ptr_Generic_uint %168
OpStore %111 %78 Aligned 4
%80 = OpLoad %float %12 %80 = OpLoad %float %12
%81 = OpLoad %float %13 %81 = OpLoad %float %13
%149 = OpIsNan %bool %80 %169 = OpIsNan %bool %80
%150 = OpIsNan %bool %81 %170 = OpIsNan %bool %81
%79 = OpLogicalOr %bool %149 %150 %79 = OpLogicalOr %bool %169 %170
OpStore %15 %79 OpStore %15 %79
%82 = OpLoad %bool %15 %82 = OpLoad %bool %15
OpBranchConditional %82 %28 %29 OpBranchConditional %82 %28 %29
@ -199,8 +219,10 @@
%31 = OpLabel %31 = OpLabel
%86 = OpLoad %ulong %5 %86 = OpLoad %ulong %5
%87 = OpLoad %uint %14 %87 = OpLoad %uint %14
%115 = OpIAdd %ulong %86 %ulong_12_0 %127 = OpConvertUToPtr %_ptr_Generic_uint %86
%127 = OpConvertUToPtr %_ptr_Generic_uint %115 %171 = OpBitcast %_ptr_Generic_uchar %127
OpStore %127 %87 Aligned 4 %172 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %171 %ulong_12_0
%115 = OpBitcast %_ptr_Generic_uint %172
OpStore %115 %87 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -22,6 +22,8 @@
%_ptr_Function_bool = OpTypePointer Function %bool %_ptr_Function_bool = OpTypePointer Function %bool
%_ptr_Generic_float = OpTypePointer Generic %float %_ptr_Generic_float = OpTypePointer Generic %float
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%ulong_8 = OpConstant %ulong 8 %ulong_8 = OpConstant %ulong 8
%ulong_12 = OpConstant %ulong 12 %ulong_12 = OpConstant %ulong 12
%ulong_16 = OpConstant %ulong 16 %ulong_16 = OpConstant %ulong 16
@ -77,46 +79,60 @@
%36 = OpLoad %float %116 Aligned 4 %36 = OpLoad %float %116 Aligned 4
OpStore %6 %36 OpStore %6 %36
%39 = OpLoad %ulong %4 %39 = OpLoad %ulong %4
%89 = OpIAdd %ulong %39 %ulong_4 %117 = OpConvertUToPtr %_ptr_Generic_float %39
%117 = OpConvertUToPtr %_ptr_Generic_float %89 %144 = OpBitcast %_ptr_Generic_uchar %117
%38 = OpLoad %float %117 Aligned 4 %145 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %144 %ulong_4
%89 = OpBitcast %_ptr_Generic_float %145
%38 = OpLoad %float %89 Aligned 4
OpStore %7 %38 OpStore %7 %38
%41 = OpLoad %ulong %4 %41 = OpLoad %ulong %4
%91 = OpIAdd %ulong %41 %ulong_8 %118 = OpConvertUToPtr %_ptr_Generic_float %41
%118 = OpConvertUToPtr %_ptr_Generic_float %91 %146 = OpBitcast %_ptr_Generic_uchar %118
%40 = OpLoad %float %118 Aligned 4 %147 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %146 %ulong_8
%91 = OpBitcast %_ptr_Generic_float %147
%40 = OpLoad %float %91 Aligned 4
OpStore %8 %40 OpStore %8 %40
%43 = OpLoad %ulong %4 %43 = OpLoad %ulong %4
%93 = OpIAdd %ulong %43 %ulong_12 %119 = OpConvertUToPtr %_ptr_Generic_float %43
%119 = OpConvertUToPtr %_ptr_Generic_float %93 %148 = OpBitcast %_ptr_Generic_uchar %119
%42 = OpLoad %float %119 Aligned 4 %149 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %148 %ulong_12
%93 = OpBitcast %_ptr_Generic_float %149
%42 = OpLoad %float %93 Aligned 4
OpStore %9 %42 OpStore %9 %42
%45 = OpLoad %ulong %4 %45 = OpLoad %ulong %4
%95 = OpIAdd %ulong %45 %ulong_16 %120 = OpConvertUToPtr %_ptr_Generic_float %45
%120 = OpConvertUToPtr %_ptr_Generic_float %95 %150 = OpBitcast %_ptr_Generic_uchar %120
%44 = OpLoad %float %120 Aligned 4 %151 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %150 %ulong_16
%95 = OpBitcast %_ptr_Generic_float %151
%44 = OpLoad %float %95 Aligned 4
OpStore %10 %44 OpStore %10 %44
%47 = OpLoad %ulong %4 %47 = OpLoad %ulong %4
%97 = OpIAdd %ulong %47 %ulong_20 %121 = OpConvertUToPtr %_ptr_Generic_float %47
%121 = OpConvertUToPtr %_ptr_Generic_float %97 %152 = OpBitcast %_ptr_Generic_uchar %121
%46 = OpLoad %float %121 Aligned 4 %153 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %152 %ulong_20
%97 = OpBitcast %_ptr_Generic_float %153
%46 = OpLoad %float %97 Aligned 4
OpStore %11 %46 OpStore %11 %46
%49 = OpLoad %ulong %4 %49 = OpLoad %ulong %4
%99 = OpIAdd %ulong %49 %ulong_24 %122 = OpConvertUToPtr %_ptr_Generic_float %49
%122 = OpConvertUToPtr %_ptr_Generic_float %99 %154 = OpBitcast %_ptr_Generic_uchar %122
%48 = OpLoad %float %122 Aligned 4 %155 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %154 %ulong_24
%99 = OpBitcast %_ptr_Generic_float %155
%48 = OpLoad %float %99 Aligned 4
OpStore %12 %48 OpStore %12 %48
%51 = OpLoad %ulong %4 %51 = OpLoad %ulong %4
%101 = OpIAdd %ulong %51 %ulong_28 %123 = OpConvertUToPtr %_ptr_Generic_float %51
%123 = OpConvertUToPtr %_ptr_Generic_float %101 %156 = OpBitcast %_ptr_Generic_uchar %123
%50 = OpLoad %float %123 Aligned 4 %157 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %156 %ulong_28
%101 = OpBitcast %_ptr_Generic_float %157
%50 = OpLoad %float %101 Aligned 4
OpStore %13 %50 OpStore %13 %50
%53 = OpLoad %float %6 %53 = OpLoad %float %6
%54 = OpLoad %float %7 %54 = OpLoad %float %7
%142 = OpIsNan %bool %53 %158 = OpIsNan %bool %53
%143 = OpIsNan %bool %54 %159 = OpIsNan %bool %54
%144 = OpLogicalOr %bool %142 %143 %160 = OpLogicalOr %bool %158 %159
%52 = OpSelect %bool %144 %false %true %52 = OpSelect %bool %160 %false %true
OpStore %15 %52 OpStore %15 %52
%55 = OpLoad %bool %15 %55 = OpLoad %bool %15
OpBranchConditional %55 %16 %17 OpBranchConditional %55 %16 %17
@ -138,10 +154,10 @@
OpStore %124 %60 Aligned 4 OpStore %124 %60 Aligned 4
%62 = OpLoad %float %8 %62 = OpLoad %float %8
%63 = OpLoad %float %9 %63 = OpLoad %float %9
%148 = OpIsNan %bool %62 %164 = OpIsNan %bool %62
%149 = OpIsNan %bool %63 %165 = OpIsNan %bool %63
%150 = OpLogicalOr %bool %148 %149 %166 = OpLogicalOr %bool %164 %165
%61 = OpSelect %bool %150 %false_0 %true_0 %61 = OpSelect %bool %166 %false_0 %true_0
OpStore %15 %61 OpStore %15 %61
%64 = OpLoad %bool %15 %64 = OpLoad %bool %15
OpBranchConditional %64 %20 %21 OpBranchConditional %64 %20 %21
@ -159,15 +175,17 @@
%23 = OpLabel %23 = OpLabel
%68 = OpLoad %ulong %5 %68 = OpLoad %ulong %5
%69 = OpLoad %uint %14 %69 = OpLoad %uint %14
%107 = OpIAdd %ulong %68 %ulong_4_0 %125 = OpConvertUToPtr %_ptr_Generic_uint %68
%125 = OpConvertUToPtr %_ptr_Generic_uint %107 %169 = OpBitcast %_ptr_Generic_uchar %125
OpStore %125 %69 Aligned 4 %170 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %169 %ulong_4_0
%107 = OpBitcast %_ptr_Generic_uint %170
OpStore %107 %69 Aligned 4
%71 = OpLoad %float %10 %71 = OpLoad %float %10
%72 = OpLoad %float %11 %72 = OpLoad %float %11
%153 = OpIsNan %bool %71 %171 = OpIsNan %bool %71
%154 = OpIsNan %bool %72 %172 = OpIsNan %bool %72
%155 = OpLogicalOr %bool %153 %154 %173 = OpLogicalOr %bool %171 %172
%70 = OpSelect %bool %155 %false_1 %true_1 %70 = OpSelect %bool %173 %false_1 %true_1
OpStore %15 %70 OpStore %15 %70
%73 = OpLoad %bool %15 %73 = OpLoad %bool %15
OpBranchConditional %73 %24 %25 OpBranchConditional %73 %24 %25
@ -185,15 +203,17 @@
%27 = OpLabel %27 = OpLabel
%77 = OpLoad %ulong %5 %77 = OpLoad %ulong %5
%78 = OpLoad %uint %14 %78 = OpLoad %uint %14
%111 = OpIAdd %ulong %77 %ulong_8_0 %126 = OpConvertUToPtr %_ptr_Generic_uint %77
%126 = OpConvertUToPtr %_ptr_Generic_uint %111 %176 = OpBitcast %_ptr_Generic_uchar %126
OpStore %126 %78 Aligned 4 %177 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %176 %ulong_8_0
%111 = OpBitcast %_ptr_Generic_uint %177
OpStore %111 %78 Aligned 4
%80 = OpLoad %float %12 %80 = OpLoad %float %12
%81 = OpLoad %float %13 %81 = OpLoad %float %13
%158 = OpIsNan %bool %80 %178 = OpIsNan %bool %80
%159 = OpIsNan %bool %81 %179 = OpIsNan %bool %81
%160 = OpLogicalOr %bool %158 %159 %180 = OpLogicalOr %bool %178 %179
%79 = OpSelect %bool %160 %false_2 %true_2 %79 = OpSelect %bool %180 %false_2 %true_2
OpStore %15 %79 OpStore %15 %79
%82 = OpLoad %bool %15 %82 = OpLoad %bool %15
OpBranchConditional %82 %28 %29 OpBranchConditional %82 %28 %29
@ -211,8 +231,10 @@
%31 = OpLabel %31 = OpLabel
%86 = OpLoad %ulong %5 %86 = OpLoad %ulong %5
%87 = OpLoad %uint %14 %87 = OpLoad %uint %14
%115 = OpIAdd %ulong %86 %ulong_12_0 %127 = OpConvertUToPtr %_ptr_Generic_uint %86
%127 = OpConvertUToPtr %_ptr_Generic_uint %115 %183 = OpBitcast %_ptr_Generic_uchar %127
OpStore %127 %87 Aligned 4 %184 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %183 %ulong_12_0
%115 = OpBitcast %_ptr_Generic_uint %184
OpStore %115 %87 Aligned 4
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -24,7 +24,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong %_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
%_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong %_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong
%uint_0 = OpConstant %uint 0 %ulong_0 = OpConstant %ulong 0
%_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar
%1 = OpFunction %void None %40 %1 = OpFunction %void None %40
%10 = OpFunctionParameter %ulong %10 = OpFunctionParameter %ulong
%11 = OpFunctionParameter %ulong %11 = OpFunctionParameter %ulong
@ -54,9 +55,11 @@
%27 = OpConvertUToPtr %_ptr_Workgroup_ulong %17 %27 = OpConvertUToPtr %_ptr_Workgroup_ulong %17
OpStore %27 %18 Aligned 8 OpStore %27 %18 Aligned 8
%20 = OpLoad %uint %7 %20 = OpLoad %uint %7
%24 = OpIAdd %uint %20 %uint_0 %28 = OpConvertUToPtr %_ptr_Workgroup_ulong %20
%28 = OpConvertUToPtr %_ptr_Workgroup_ulong %24 %46 = OpBitcast %_ptr_Workgroup_uchar %28
%19 = OpLoad %ulong %28 Aligned 8 %47 = OpInBoundsPtrAccessChain %_ptr_Workgroup_uchar %46 %ulong_0
%24 = OpBitcast %_ptr_Workgroup_ulong %47
%19 = OpLoad %ulong %24 Aligned 8
OpStore %9 %19 OpStore %9 %19
%21 = OpLoad %ulong %6 %21 = OpLoad %ulong %6
%22 = OpLoad %ulong %9 %22 = OpLoad %ulong %9

View file

@ -7,27 +7,24 @@
OpCapability Int64 OpCapability Int64
OpCapability Float16 OpCapability Float16
OpCapability Float64 OpCapability Float64
%33 = OpExtInstImport "OpenCL.std" %31 = OpExtInstImport "OpenCL.std"
OpMemoryModel Physical64 OpenCL OpMemoryModel Physical64 OpenCL
OpEntryPoint Kernel %2 "shared_ptr_take_address" %1 OpEntryPoint Kernel %2 "shared_ptr_take_address" %1
OpDecorate %1 Alignment 4 OpDecorate %1 Alignment 4
%void = OpTypeVoid %void = OpTypeVoid
%uchar = OpTypeInt 8 0 %uchar = OpTypeInt 8 0
%_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar %_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar
%_ptr_Workgroup__ptr_Workgroup_uchar = OpTypePointer Workgroup %_ptr_Workgroup_uchar %1 = OpVariable %_ptr_Workgroup_uchar Workgroup
%1 = OpVariable %_ptr_Workgroup__ptr_Workgroup_uchar Workgroup
%ulong = OpTypeInt 64 0 %ulong = OpTypeInt 64 0
%39 = OpTypeFunction %void %ulong %ulong %_ptr_Workgroup_uchar %36 = OpTypeFunction %void %ulong %ulong %_ptr_Workgroup_uchar
%_ptr_Function__ptr_Workgroup_uchar = OpTypePointer Function %_ptr_Workgroup_uchar
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong %_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
%_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong %_ptr_Workgroup_ulong = OpTypePointer Workgroup %ulong
%2 = OpFunction %void None %39 %2 = OpFunction %void None %36
%10 = OpFunctionParameter %ulong %10 = OpFunctionParameter %ulong
%11 = OpFunctionParameter %ulong %11 = OpFunctionParameter %ulong
%31 = OpFunctionParameter %_ptr_Workgroup_uchar %30 = OpFunctionParameter %_ptr_Workgroup_uchar
%40 = OpLabel %28 = OpLabel
%32 = OpVariable %_ptr_Function__ptr_Workgroup_uchar Function
%3 = OpVariable %_ptr_Function_ulong Function %3 = OpVariable %_ptr_Function_ulong Function
%4 = OpVariable %_ptr_Function_ulong Function %4 = OpVariable %_ptr_Function_ulong Function
%5 = OpVariable %_ptr_Function_ulong Function %5 = OpVariable %_ptr_Function_ulong Function
@ -35,34 +32,30 @@
%7 = OpVariable %_ptr_Function_ulong Function %7 = OpVariable %_ptr_Function_ulong Function
%8 = OpVariable %_ptr_Function_ulong Function %8 = OpVariable %_ptr_Function_ulong Function
%9 = OpVariable %_ptr_Function_ulong Function %9 = OpVariable %_ptr_Function_ulong Function
OpStore %32 %31
OpBranch %29
%29 = OpLabel
OpStore %3 %10 OpStore %3 %10
OpStore %4 %11 OpStore %4 %11
%12 = OpLoad %ulong %3 Aligned 8 %12 = OpLoad %ulong %3 Aligned 8
OpStore %5 %12 OpStore %5 %12
%13 = OpLoad %ulong %4 Aligned 8 %13 = OpLoad %ulong %4 Aligned 8
OpStore %6 %13 OpStore %6 %13
%15 = OpLoad %_ptr_Workgroup_uchar %32 %23 = OpConvertPtrToU %ulong %30
%24 = OpConvertPtrToU %ulong %15 %14 = OpCopyObject %ulong %23
%14 = OpCopyObject %ulong %24
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %ulong %5 %16 = OpLoad %ulong %5
%25 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %17 %24 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %16
%16 = OpLoad %ulong %25 Aligned 8 %15 = OpLoad %ulong %24 Aligned 8
OpStore %8 %16 OpStore %8 %15
%18 = OpLoad %ulong %7 %17 = OpLoad %ulong %7
%19 = OpLoad %ulong %8 %18 = OpLoad %ulong %8
%26 = OpConvertUToPtr %_ptr_Workgroup_ulong %18 %25 = OpConvertUToPtr %_ptr_Workgroup_ulong %17
OpStore %26 %19 Aligned 8 OpStore %25 %18 Aligned 8
%21 = OpLoad %ulong %7 %20 = OpLoad %ulong %7
%27 = OpConvertUToPtr %_ptr_Workgroup_ulong %21 %26 = OpConvertUToPtr %_ptr_Workgroup_ulong %20
%20 = OpLoad %ulong %27 Aligned 8 %19 = OpLoad %ulong %26 Aligned 8
OpStore %9 %20 OpStore %9 %19
%22 = OpLoad %ulong %6 %21 = OpLoad %ulong %6
%23 = OpLoad %ulong %9 %22 = OpLoad %ulong %9
%28 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %22 %27 = OpConvertUToPtr %_ptr_CrossWorkgroup_ulong %21
OpStore %28 %23 Aligned 8 OpStore %27 %22 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -7,7 +7,7 @@
OpCapability Int64 OpCapability Int64
OpCapability Float16 OpCapability Float16
OpCapability Float64 OpCapability Float64
%50 = OpExtInstImport "OpenCL.std" %54 = OpExtInstImport "OpenCL.std"
OpMemoryModel Physical64 OpenCL OpMemoryModel Physical64 OpenCL
OpEntryPoint Kernel %1 "stateful_ld_st_ntid" %gl_LocalInvocationID OpEntryPoint Kernel %1 "stateful_ld_st_ntid" %gl_LocalInvocationID
OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId
@ -18,34 +18,34 @@
%gl_LocalInvocationID = OpVariable %_ptr_Input_v3ulong Input %gl_LocalInvocationID = OpVariable %_ptr_Input_v3ulong Input
%uchar = OpTypeInt 8 0 %uchar = OpTypeInt 8 0
%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar %_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar
%57 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_uchar %61 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_uchar
%_ptr_Function__ptr_CrossWorkgroup_uchar = OpTypePointer Function %_ptr_CrossWorkgroup_uchar %_ptr_Function__ptr_CrossWorkgroup_uchar = OpTypePointer Function %_ptr_CrossWorkgroup_uchar
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong %_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
%1 = OpFunction %void None %57 %1 = OpFunction %void None %61
%20 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar %20 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar
%21 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar %21 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar
%48 = OpLabel %52 = OpLabel
%2 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %12 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%3 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %13 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%10 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %10 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%11 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %11 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%6 = OpVariable %_ptr_Function_uint Function %6 = OpVariable %_ptr_Function_uint Function
%7 = OpVariable %_ptr_Function_ulong Function %7 = OpVariable %_ptr_Function_ulong Function
%8 = OpVariable %_ptr_Function_ulong Function %8 = OpVariable %_ptr_Function_ulong Function
OpStore %2 %20 OpStore %12 %20
OpStore %3 %21 OpStore %13 %21
%13 = OpBitcast %_ptr_Function_ulong %2 %45 = OpBitcast %_ptr_Function_ulong %12
%44 = OpLoad %ulong %13 Aligned 8 %44 = OpLoad %ulong %45 Aligned 8
%12 = OpCopyObject %ulong %44 %14 = OpCopyObject %ulong %44
%22 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %12 %22 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %14
OpStore %10 %22 OpStore %10 %22
%15 = OpBitcast %_ptr_Function_ulong %3 %47 = OpBitcast %_ptr_Function_ulong %13
%45 = OpLoad %ulong %15 Aligned 8 %46 = OpLoad %ulong %47 Aligned 8
%14 = OpCopyObject %ulong %45 %15 = OpCopyObject %ulong %46
%23 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %14 %23 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %15
OpStore %11 %23 OpStore %11 %23
%24 = OpLoad %_ptr_CrossWorkgroup_uchar %10 %24 = OpLoad %_ptr_CrossWorkgroup_uchar %10
%17 = OpConvertPtrToU %ulong %24 %17 = OpConvertPtrToU %ulong %24
@ -57,35 +57,37 @@
%18 = OpCopyObject %ulong %19 %18 = OpCopyObject %ulong %19
%27 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %18 %27 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %18
OpStore %11 %27 OpStore %11 %27
%62 = OpLoad %v3ulong %gl_LocalInvocationID %66 = OpLoad %v3ulong %gl_LocalInvocationID
%43 = OpCompositeExtract %ulong %62 0 %43 = OpCompositeExtract %ulong %66 0
%63 = OpBitcast %ulong %43 %67 = OpBitcast %ulong %43
%29 = OpUConvert %uint %63 %29 = OpUConvert %uint %67
%28 = OpCopyObject %uint %29 %28 = OpCopyObject %uint %29
OpStore %6 %28 OpStore %6 %28
%31 = OpLoad %uint %6 %31 = OpLoad %uint %6
%64 = OpBitcast %uint %31 %68 = OpBitcast %uint %31
%30 = OpUConvert %ulong %64 %30 = OpUConvert %ulong %68
OpStore %7 %30 OpStore %7 %30
%33 = OpLoad %_ptr_CrossWorkgroup_uchar %10 %33 = OpLoad %_ptr_CrossWorkgroup_uchar %10
%34 = OpLoad %ulong %7 %34 = OpLoad %ulong %7
%65 = OpBitcast %_ptr_CrossWorkgroup_uchar %33 %48 = OpCopyObject %ulong %34
%66 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %65 %34 %69 = OpBitcast %_ptr_CrossWorkgroup_uchar %33
%32 = OpBitcast %_ptr_CrossWorkgroup_uchar %66 %70 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %69 %48
%32 = OpBitcast %_ptr_CrossWorkgroup_uchar %70
OpStore %10 %32 OpStore %10 %32
%36 = OpLoad %_ptr_CrossWorkgroup_uchar %11 %36 = OpLoad %_ptr_CrossWorkgroup_uchar %11
%37 = OpLoad %ulong %7 %37 = OpLoad %ulong %7
%67 = OpBitcast %_ptr_CrossWorkgroup_uchar %36 %49 = OpCopyObject %ulong %37
%68 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %67 %37 %71 = OpBitcast %_ptr_CrossWorkgroup_uchar %36
%35 = OpBitcast %_ptr_CrossWorkgroup_uchar %68 %72 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %71 %49
%35 = OpBitcast %_ptr_CrossWorkgroup_uchar %72
OpStore %11 %35 OpStore %11 %35
%39 = OpLoad %_ptr_CrossWorkgroup_uchar %10 %39 = OpLoad %_ptr_CrossWorkgroup_uchar %10
%46 = OpBitcast %_ptr_CrossWorkgroup_ulong %39 %50 = OpBitcast %_ptr_CrossWorkgroup_ulong %39
%38 = OpLoad %ulong %46 Aligned 8 %38 = OpLoad %ulong %50 Aligned 8
OpStore %8 %38 OpStore %8 %38
%40 = OpLoad %_ptr_CrossWorkgroup_uchar %11 %40 = OpLoad %_ptr_CrossWorkgroup_uchar %11
%41 = OpLoad %ulong %8 %41 = OpLoad %ulong %8
%47 = OpBitcast %_ptr_CrossWorkgroup_ulong %40 %51 = OpBitcast %_ptr_CrossWorkgroup_ulong %40
OpStore %47 %41 Aligned 8 OpStore %51 %41 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -7,7 +7,7 @@
OpCapability Int64 OpCapability Int64
OpCapability Float16 OpCapability Float16
OpCapability Float64 OpCapability Float64
%58 = OpExtInstImport "OpenCL.std" %62 = OpExtInstImport "OpenCL.std"
OpMemoryModel Physical64 OpenCL OpMemoryModel Physical64 OpenCL
OpEntryPoint Kernel %1 "stateful_ld_st_ntid_chain" %gl_LocalInvocationID OpEntryPoint Kernel %1 "stateful_ld_st_ntid_chain" %gl_LocalInvocationID
OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId
@ -18,18 +18,18 @@
%gl_LocalInvocationID = OpVariable %_ptr_Input_v3ulong Input %gl_LocalInvocationID = OpVariable %_ptr_Input_v3ulong Input
%uchar = OpTypeInt 8 0 %uchar = OpTypeInt 8 0
%_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar %_ptr_CrossWorkgroup_uchar = OpTypePointer CrossWorkgroup %uchar
%65 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_uchar %69 = OpTypeFunction %void %_ptr_CrossWorkgroup_uchar %_ptr_CrossWorkgroup_uchar
%_ptr_Function__ptr_CrossWorkgroup_uchar = OpTypePointer Function %_ptr_CrossWorkgroup_uchar %_ptr_Function__ptr_CrossWorkgroup_uchar = OpTypePointer Function %_ptr_CrossWorkgroup_uchar
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Function_ulong = OpTypePointer Function %ulong %_ptr_Function_ulong = OpTypePointer Function %ulong
%_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong %_ptr_CrossWorkgroup_ulong = OpTypePointer CrossWorkgroup %ulong
%1 = OpFunction %void None %65 %1 = OpFunction %void None %69
%28 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar %28 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar
%29 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar %29 = OpFunctionParameter %_ptr_CrossWorkgroup_uchar
%56 = OpLabel %60 = OpLabel
%2 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %20 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%3 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %21 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%14 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %14 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%15 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %15 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
%16 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function %16 = OpVariable %_ptr_Function__ptr_CrossWorkgroup_uchar Function
@ -39,17 +39,17 @@
%10 = OpVariable %_ptr_Function_uint Function %10 = OpVariable %_ptr_Function_uint Function
%11 = OpVariable %_ptr_Function_ulong Function %11 = OpVariable %_ptr_Function_ulong Function
%12 = OpVariable %_ptr_Function_ulong Function %12 = OpVariable %_ptr_Function_ulong Function
OpStore %2 %28 OpStore %20 %28
OpStore %3 %29 OpStore %21 %29
%21 = OpBitcast %_ptr_Function_ulong %2 %53 = OpBitcast %_ptr_Function_ulong %20
%52 = OpLoad %ulong %21 Aligned 8 %52 = OpLoad %ulong %53 Aligned 8
%20 = OpCopyObject %ulong %52 %22 = OpCopyObject %ulong %52
%30 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %20 %30 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %22
OpStore %14 %30 OpStore %14 %30
%23 = OpBitcast %_ptr_Function_ulong %3 %55 = OpBitcast %_ptr_Function_ulong %21
%53 = OpLoad %ulong %23 Aligned 8 %54 = OpLoad %ulong %55 Aligned 8
%22 = OpCopyObject %ulong %53 %23 = OpCopyObject %ulong %54
%31 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %22 %31 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %23
OpStore %17 %31 OpStore %17 %31
%32 = OpLoad %_ptr_CrossWorkgroup_uchar %14 %32 = OpLoad %_ptr_CrossWorkgroup_uchar %14
%25 = OpConvertPtrToU %ulong %32 %25 = OpConvertPtrToU %ulong %32
@ -61,35 +61,37 @@
%26 = OpCopyObject %ulong %27 %26 = OpCopyObject %ulong %27
%35 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %26 %35 = OpConvertUToPtr %_ptr_CrossWorkgroup_uchar %26
OpStore %18 %35 OpStore %18 %35
%70 = OpLoad %v3ulong %gl_LocalInvocationID %74 = OpLoad %v3ulong %gl_LocalInvocationID
%51 = OpCompositeExtract %ulong %70 0 %51 = OpCompositeExtract %ulong %74 0
%71 = OpBitcast %ulong %51 %75 = OpBitcast %ulong %51
%37 = OpUConvert %uint %71 %37 = OpUConvert %uint %75
%36 = OpCopyObject %uint %37 %36 = OpCopyObject %uint %37
OpStore %10 %36 OpStore %10 %36
%39 = OpLoad %uint %10 %39 = OpLoad %uint %10
%72 = OpBitcast %uint %39 %76 = OpBitcast %uint %39
%38 = OpUConvert %ulong %72 %38 = OpUConvert %ulong %76
OpStore %11 %38 OpStore %11 %38
%41 = OpLoad %_ptr_CrossWorkgroup_uchar %15 %41 = OpLoad %_ptr_CrossWorkgroup_uchar %15
%42 = OpLoad %ulong %11 %42 = OpLoad %ulong %11
%73 = OpBitcast %_ptr_CrossWorkgroup_uchar %41 %56 = OpCopyObject %ulong %42
%74 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %73 %42 %77 = OpBitcast %_ptr_CrossWorkgroup_uchar %41
%40 = OpBitcast %_ptr_CrossWorkgroup_uchar %74 %78 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %77 %56
%40 = OpBitcast %_ptr_CrossWorkgroup_uchar %78
OpStore %16 %40 OpStore %16 %40
%44 = OpLoad %_ptr_CrossWorkgroup_uchar %18 %44 = OpLoad %_ptr_CrossWorkgroup_uchar %18
%45 = OpLoad %ulong %11 %45 = OpLoad %ulong %11
%75 = OpBitcast %_ptr_CrossWorkgroup_uchar %44 %57 = OpCopyObject %ulong %45
%76 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %75 %45 %79 = OpBitcast %_ptr_CrossWorkgroup_uchar %44
%43 = OpBitcast %_ptr_CrossWorkgroup_uchar %76 %80 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uchar %79 %57
%43 = OpBitcast %_ptr_CrossWorkgroup_uchar %80
OpStore %19 %43 OpStore %19 %43
%47 = OpLoad %_ptr_CrossWorkgroup_uchar %16 %47 = OpLoad %_ptr_CrossWorkgroup_uchar %16
%54 = OpBitcast %_ptr_CrossWorkgroup_ulong %47 %58 = OpBitcast %_ptr_CrossWorkgroup_ulong %47
%46 = OpLoad %ulong %54 Aligned 8 %46 = OpLoad %ulong %58 Aligned 8
OpStore %12 %46 OpStore %12 %46
%48 = OpLoad %_ptr_CrossWorkgroup_uchar %19 %48 = OpLoad %_ptr_CrossWorkgroup_uchar %19
%49 = OpLoad %ulong %12 %49 = OpLoad %ulong %12
%55 = OpBitcast %_ptr_CrossWorkgroup_ulong %48 %59 = OpBitcast %_ptr_CrossWorkgroup_ulong %48
OpStore %55 %49 Aligned 8 OpStore %59 %49 Aligned 8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View file

@ -25,8 +25,8 @@
%1 = OpFunction %v2uint None %55 %1 = OpFunction %v2uint None %55
%7 = OpFunctionParameter %v2uint %7 = OpFunctionParameter %v2uint
%24 = OpLabel %24 = OpLabel
%2 = OpVariable %_ptr_Function_v2uint Function
%3 = OpVariable %_ptr_Function_v2uint Function %3 = OpVariable %_ptr_Function_v2uint Function
%2 = OpVariable %_ptr_Function_v2uint Function
%4 = OpVariable %_ptr_Function_v2uint Function %4 = OpVariable %_ptr_Function_v2uint Function
%5 = OpVariable %_ptr_Function_uint Function %5 = OpVariable %_ptr_Function_uint Function
%6 = OpVariable %_ptr_Function_uint Function %6 = OpVariable %_ptr_Function_uint Function

View file

@ -0,0 +1,21 @@
import os, sys, subprocess
def main(path):
dirs = os.listdir(path)
for file in dirs:
if not file.endswith(".spvtxt"):
continue
full_file = os.path.join(path, file)
print(file)
spv_file = f"/tmp/{file}.spv"
# We nominally emit spv1.3, but use spv1.4 feature (OpEntryPoint interface changes in 1.4)
proc1 = subprocess.run(["spirv-as", "--target-env", "spv1.4", full_file, "-o", spv_file])
proc2 = subprocess.run(["spirv-dis", spv_file, "-o", f"{spv_file}.dis.txt"])
proc3 = subprocess.run(["spirv-val", spv_file ])
if proc1.returncode != 0 or proc2.returncode != 0 or proc3.returncode != 0:
print(proc1.returncode)
print(proc2.returncode)
print(proc3.returncode)
if __name__ == "__main__":
main(sys.argv[1])

View file

@ -18,6 +18,8 @@
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%_ptr_Generic_uint = OpTypePointer Generic %uint %_ptr_Generic_uint = OpTypePointer Generic %uint
%ulong_4 = OpConstant %ulong 4 %ulong_4 = OpConstant %ulong 4
%uchar = OpTypeInt 8 0
%_ptr_Generic_uchar = OpTypePointer Generic %uchar
%1 = OpFunction %void None %31 %1 = OpFunction %void None %31
%8 = OpFunctionParameter %ulong %8 = OpFunctionParameter %ulong
%9 = OpFunctionParameter %ulong %9 = OpFunctionParameter %ulong
@ -39,9 +41,11 @@
%12 = OpLoad %uint %23 Aligned 4 %12 = OpLoad %uint %23 Aligned 4
OpStore %6 %12 OpStore %6 %12
%15 = OpLoad %ulong %4 %15 = OpLoad %ulong %4
%22 = OpIAdd %ulong %15 %ulong_4 %24 = OpConvertUToPtr %_ptr_Generic_uint %15
%24 = OpConvertUToPtr %_ptr_Generic_uint %22 %38 = OpBitcast %_ptr_Generic_uchar %24
%14 = OpLoad %uint %24 Aligned 4 %39 = OpInBoundsPtrAccessChain %_ptr_Generic_uchar %38 %ulong_4
%22 = OpBitcast %_ptr_Generic_uint %39
%14 = OpLoad %uint %22 Aligned 4
OpStore %7 %14 OpStore %7 %14
%17 = OpLoad %uint %6 %17 = OpLoad %uint %6
%18 = OpLoad %uint %7 %18 = OpLoad %uint %7

File diff suppressed because it is too large Load diff

View file

@ -219,11 +219,19 @@ unsafe fn to_str<T>(image: *const T) -> Option<&'static str> {
fn directive_to_kernel(dir: &ast::Directive<ast::ParsedArgParams>) -> Option<(String, Vec<usize>)> { fn directive_to_kernel(dir: &ast::Directive<ast::ParsedArgParams>) -> Option<(String, Vec<usize>)> {
match dir { match dir {
ast::Directive::Method(ast::Function { ast::Directive::Method(
func_directive: ast::MethodDecl::Kernel { name, in_args }, _,
ast::Function {
func_directive:
ast::MethodDeclaration {
name: ast::MethodName::Kernel(name),
input_arguments,
.. ..
}) => { },
let arg_sizes = in_args ..
},
) => {
let arg_sizes = input_arguments
.iter() .iter()
.map(|arg| ast::Type::from(arg.v_type.clone()).size_of()) .map(|arg| ast::Type::from(arg.v_type.clone()).size_of())
.collect(); .collect();