From dbc76056dd8c4b88d75822f0948185022e806544 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Tue, 3 Sep 2024 14:04:36 +0300 Subject: [PATCH 01/10] Initial Enzyme support --- Project.toml | 7 +++ ext/EnzymeCoreExt/EnzymeCoreExt.jl | 76 ++++++++++++++++++++++++++++++ src/AMDGPU.jl | 18 +++---- src/runtime/hip-execution.jl | 1 + t.jl | 25 ++++++++++ test/enzyme_tests.jl | 35 ++++++++++++++ test/runtests.jl | 8 +++- 7 files changed, 160 insertions(+), 10 deletions(-) create mode 100644 ext/EnzymeCoreExt/EnzymeCoreExt.jl create mode 100644 t.jl create mode 100644 test/enzyme_tests.jl diff --git a/Project.toml b/Project.toml index fe3367731..7e8e04b86 100644 --- a/Project.toml +++ b/Project.toml @@ -32,11 +32,18 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" UnsafeAtomics = "013be700-e6cd-48c3-b4a1-df204f14c38f" UnsafeAtomicsLLVM = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +[weakdeps] +EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + +[extensions] +EnzymeCoreExt = "EnzymeCore" + [compat] AbstractFFTs = "1.0" Adapt = "4" Atomix = "0.1" CEnum = "0.4, 0.5" +EnzymeCore = "0.7.3" ExprTools = "0.1" GPUArrays = "10" GPUCompiler = "0.27" diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl new file mode 100644 index 000000000..9449e6ea4 --- /dev/null +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -0,0 +1,76 @@ +module EnzymeCoreExt + +using AMDGPU +using EnzymeCore +using GPUCompiler + +function EnzymeCore.compiler_job_from_backend( + ::ROCBackend, @nospecialize(F::Type), @nospecialize(TT::Type), +) + Core.println("ENZ compiler job") + mi = GPUCompiler.methodinstance(F, TT) + return GPUCompiler.CompilerJob(mi, AMDGPU.compiler_config(AMDGPU.device())) +end + +function EnzymeCore.EnzymeRules.forward( + fn::Const{typeof(AMDGPU.hipfunction)}, ::Type{<: Duplicated}, + f::Const{F}, tt::Const{TT}; kwargs... +) where {F, TT} + Core.println("ENZ hipfunction") + res = fn.val(f.val, tt.val; kwargs...) + return Duplicated(res, res) +end + +function EnzymeCore.EnzymeRules.forward( + fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, +) where {RT, IT} + Core.println("ENZ rocconvert") + if RT <: Duplicated + Duplicated(fn.val(x.val), fn.val(x.dval)) + elseif RT <: Const + fn.val(x.val)::eltype(RT) + elseif RT <: DuplicatedNoNeed + fn.val(x.val)::eltype(RT) + else + tup = ntuple(Val(EnzymeCore.batch_size(RT))) do i + Base.@_inline_meta + fn.val(x.dval[i])::eltype(RT) + end + if RT <: BatchDuplicated + BatchDuplicated(ofv.val(x.val), tup) + else + tup + end + end +end + +function EnzymeCore.EnzymeRules.augmented_primal( + config, fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, +) where {RT, IT} + Core.println("ENZ aug primal rocconvert") + primal = EnzymeRules.needs_primal(config) ? + fn.val(x.val) : nothing + primal_T = EnzymeRules.needs_primal(config) ? eltype(RT) : Nothing + + shadow = if EnzymeRules.needs_shadow(config) + if EnzymeRules.width(config) == 1 + fn.val(x.dval) + else + ntuple(Val(EnzymeRules.width(config))) do i + Base.@_inline_meta + fn.val(x.dval[i]) + end + end + else + nothing + end + shadow_T = EnzymeRules.needs_shadow(config) ? + (EnzymeRules.width(config) == 1 ? + eltype(RT) : NTuple{EnzymeRules.width(config), eltype(RT)}) : + Nothing + + return EnzymeRules.AugmentedReturn{primal_T, shadow_T, Nothing}( + primal, shadow, nothing) +end + +end diff --git a/src/AMDGPU.jl b/src/AMDGPU.jl index a923c7308..0dc148030 100644 --- a/src/AMDGPU.jl +++ b/src/AMDGPU.jl @@ -71,8 +71,8 @@ using .ROCmDiscovery include("utils.jl") -include(joinpath("hsa", "HSA.jl")) -include(joinpath("hip", "HIP.jl")) +include("hsa/HSA.jl") +include("hip/HIP.jl") using .HIP using .HIP: HIPContext, HIPDevice, HIPStream @@ -107,7 +107,7 @@ export sync_workgroup, sync_workgroup_count, sync_workgroup_and, sync_workgroup_ include("compiler/Compiler.jl") import .Compiler -import .Compiler: hipfunction +import .Compiler: hipfunction, compiler_config include("tls.jl") include("highlevel.jl") @@ -126,12 +126,12 @@ include("kernels/reverse.jl") allowscalar(x::Bool) = GPUArrays.allowscalar(x) -include(joinpath("blas", "rocBLAS.jl")) -include(joinpath("solver", "rocSOLVER.jl")) -include(joinpath("sparse", "rocSPARSE.jl")) -include(joinpath("rand", "rocRAND.jl")) -include(joinpath("fft", "rocFFT.jl")) -include(joinpath("dnn", "MIOpen.jl")) +include("blas/rocBLAS.jl") +include("solver/rocSOLVER.jl") +include("sparse/rocSPARSE.jl") +include("rand/rocRAND.jl") +include("fft/rocFFT.jl") +include("dnn/MIOpen.jl") include("random.jl") diff --git a/src/runtime/hip-execution.jl b/src/runtime/hip-execution.jl index 0002d7568..0a0bc37f3 100644 --- a/src/runtime/hip-execution.jl +++ b/src/runtime/hip-execution.jl @@ -118,6 +118,7 @@ function launch( gridsize::ROCDim = 1, groupsize::ROCDim = 1, shmem::Integer = 0, stream::HIP.HIPStream, ) where N + Core.println("Launching ker $fun") gd, bd = ROCDim3(gridsize), ROCDim3(groupsize) pack_arguments(args...) do kernel_params HIP.hipModuleLaunchKernel( diff --git a/t.jl b/t.jl new file mode 100644 index 000000000..7340af2ac --- /dev/null +++ b/t.jl @@ -0,0 +1,25 @@ +using AMDGPU +using EnzymeCore, Enzyme + +function square_kernel!(x) + i = workgroupIdx().x + x[i] *= x[i] + # AMDGPU.sync_workgroup() + return +end + +function square!(x) + @roc groupsize=length(x) gridsize=1 square_kernel!(x) + return +end + +function main() + A = ROCArray(collect(1.0:64.0)) + dA = ROCArray(ones(Float64, 64)) + Enzyme.autodiff(Forward, square!, Duplicated(A, dA)) + @show A + @show dA + @assert all(dA .≈ (2:2:128)) + return +end +main() diff --git a/test/enzyme_tests.jl b/test/enzyme_tests.jl new file mode 100644 index 000000000..e2ef41d23 --- /dev/null +++ b/test/enzyme_tests.jl @@ -0,0 +1,35 @@ +@testitem "enzyme" begin + +using AMDGPU +using EnzymeCore, Enzyme +using GPUCompiler + +@testset "CompilerJob from backend" begin + job = EnzymeCore.compiler_job_from_backend(ROCBackend(), typeof(()->nothing), Tuple{}) + @test job isa GPUCompiler.CompilerJob +end + +function square_kernel!(x) + i = workgroupIdx().x + x[i] *= x[i] + AMDGPU.sync_workgroup() + return +end + +function square!(x) + @roc groupsize=length(x) gridsize=1 square_kernel!(x) + return nothing +end + +@testset "Forward Kernel" begin + A = AMDGPU.rand(64) + dA = AMDGPU.ones(64) + A .= (1:1:64) + dA .= 1 + Enzyme.autodiff(Forward, square!, Duplicated(A, dA)) + @test all(dA .≈ (2:2:128)) + display(dA); println() +end + + +end diff --git a/test/runtests.jl b/test/runtests.jl index 18e44e365..ae69c0b76 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,8 +2,10 @@ using AMDGPU using AMDGPU: Device, Runtime, @allowscalar import AMDGPU.Device: HostCallHolder, hostcall! +import Pkg import PrettyTables import InteractiveUtils + using LinearAlgebra using ReTestItems using Test @@ -30,7 +32,7 @@ end AMDGPU.allowscalar(false) -const TEST_NAMES = ["core", "hip", "ext", "gpuarrays", "kernelabstractions"] +const TEST_NAMES = ["core", "hip", "ext", "gpuarrays", "kernelabstractions", "enzyme"] function parse_flags!(args, flag; default = nothing, typ = typeof(default)) for f in args @@ -90,6 +92,10 @@ end const TARGET_TESTS = isempty(ARGS) ? TEST_NAMES : ARGS +if "enzyme" in TARGET_TESTS + Pkg.add(["EnzymeCore", "Enzyme"]) +end + # Run tests in parallel. np = set_jobs ? jobs : (Sys.CPU_THREADS ÷ 2) # Limit to 2 workers, otherwise unfortunate things happen. From 4f547157b9b6d80fe1e61ce01b981538da0f8f6c Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Tue, 3 Sep 2024 14:12:53 +0300 Subject: [PATCH 02/10] Cleanup --- ext/EnzymeCoreExt/EnzymeCoreExt.jl | 4 ---- src/runtime/hip-execution.jl | 1 - t.jl | 4 ++-- test/enzyme_tests.jl | 9 +++------ 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl index 9449e6ea4..e76806c6a 100644 --- a/ext/EnzymeCoreExt/EnzymeCoreExt.jl +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -7,7 +7,6 @@ using GPUCompiler function EnzymeCore.compiler_job_from_backend( ::ROCBackend, @nospecialize(F::Type), @nospecialize(TT::Type), ) - Core.println("ENZ compiler job") mi = GPUCompiler.methodinstance(F, TT) return GPUCompiler.CompilerJob(mi, AMDGPU.compiler_config(AMDGPU.device())) end @@ -16,7 +15,6 @@ function EnzymeCore.EnzymeRules.forward( fn::Const{typeof(AMDGPU.hipfunction)}, ::Type{<: Duplicated}, f::Const{F}, tt::Const{TT}; kwargs... ) where {F, TT} - Core.println("ENZ hipfunction") res = fn.val(f.val, tt.val; kwargs...) return Duplicated(res, res) end @@ -24,7 +22,6 @@ end function EnzymeCore.EnzymeRules.forward( fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, ) where {RT, IT} - Core.println("ENZ rocconvert") if RT <: Duplicated Duplicated(fn.val(x.val), fn.val(x.dval)) elseif RT <: Const @@ -47,7 +44,6 @@ end function EnzymeCore.EnzymeRules.augmented_primal( config, fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, ) where {RT, IT} - Core.println("ENZ aug primal rocconvert") primal = EnzymeRules.needs_primal(config) ? fn.val(x.val) : nothing primal_T = EnzymeRules.needs_primal(config) ? eltype(RT) : Nothing diff --git a/src/runtime/hip-execution.jl b/src/runtime/hip-execution.jl index 0a0bc37f3..0002d7568 100644 --- a/src/runtime/hip-execution.jl +++ b/src/runtime/hip-execution.jl @@ -118,7 +118,6 @@ function launch( gridsize::ROCDim = 1, groupsize::ROCDim = 1, shmem::Integer = 0, stream::HIP.HIPStream, ) where N - Core.println("Launching ker $fun") gd, bd = ROCDim3(gridsize), ROCDim3(groupsize) pack_arguments(args...) do kernel_params HIP.hipModuleLaunchKernel( diff --git a/t.jl b/t.jl index 7340af2ac..0ce21d6d4 100644 --- a/t.jl +++ b/t.jl @@ -2,9 +2,9 @@ using AMDGPU using EnzymeCore, Enzyme function square_kernel!(x) - i = workgroupIdx().x + i = workitemIdx().x x[i] *= x[i] - # AMDGPU.sync_workgroup() + AMDGPU.sync_workgroup() return end diff --git a/test/enzyme_tests.jl b/test/enzyme_tests.jl index e2ef41d23..d3a7216ce 100644 --- a/test/enzyme_tests.jl +++ b/test/enzyme_tests.jl @@ -10,7 +10,7 @@ using GPUCompiler end function square_kernel!(x) - i = workgroupIdx().x + i = workitemIdx().x x[i] *= x[i] AMDGPU.sync_workgroup() return @@ -22,13 +22,10 @@ function square!(x) end @testset "Forward Kernel" begin - A = AMDGPU.rand(64) - dA = AMDGPU.ones(64) - A .= (1:1:64) - dA .= 1 + A = ROCArray(collect(1.0:64.0)) + dA = ROCArray(ones(Float64, 64)) Enzyme.autodiff(Forward, square!, Duplicated(A, dA)) @test all(dA .≈ (2:2:128)) - display(dA); println() end From bd7435229f9e3033480a3f9ff5ff3abc69850dd2 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Tue, 3 Sep 2024 23:59:41 +0300 Subject: [PATCH 03/10] Add HIPKernel fwd rule --- ext/EnzymeCoreExt/EnzymeCoreExt.jl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl index e76806c6a..05da0654c 100644 --- a/ext/EnzymeCoreExt/EnzymeCoreExt.jl +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -41,6 +41,24 @@ function EnzymeCore.EnzymeRules.forward( end end +function meta_fn(fn, args::Vararg{Any, N}) where N + EnzymeCore.autodiff_deferred(Forward, fn, Const, args...) + nothing +end + +function EnzymeCore.EnzymeRules.forward( + fn::EnzymeCore.Annotation{AMDGPU.Runtime.HIPKernel{F, TT}}, + ::Type{Const{Nothing}}, args...; kwargs..., +) where {F, TT} + GC.@preserve args begin + kernel_args = ((rocconvert(a) for a in args)...,) + kernel_tt = Tuple{(F, (typeof(a) for a in kernel_args))...} + kernel = AMDGPU.hipfunction(meta_fn, kernel_tt) + kernel(fn.val.f, args...; kwargs...) + end + return +end + function EnzymeCore.EnzymeRules.augmented_primal( config, fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, ) where {RT, IT} From 9749b6c5383605b5ef7d62314cbdd5c7b6735d29 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Wed, 4 Sep 2024 00:02:16 +0300 Subject: [PATCH 04/10] Fix --- ext/EnzymeCoreExt/EnzymeCoreExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl index 05da0654c..e0aae4e36 100644 --- a/ext/EnzymeCoreExt/EnzymeCoreExt.jl +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -52,7 +52,7 @@ function EnzymeCore.EnzymeRules.forward( ) where {F, TT} GC.@preserve args begin kernel_args = ((rocconvert(a) for a in args)...,) - kernel_tt = Tuple{(F, (typeof(a) for a in kernel_args))...} + kernel_tt = Tuple{(F, (typeof(a) for a in kernel_args)...)...} kernel = AMDGPU.hipfunction(meta_fn, kernel_tt) kernel(fn.val.f, args...; kwargs...) end From 49844f7cbf7398484bb801fb5cf4ae05f2cb606f Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Wed, 4 Sep 2024 00:08:12 +0300 Subject: [PATCH 05/10] Cleanup --- .buildkite/pipeline.yml | 19 +++++++++++++++++++ t.jl | 1 - test/enzyme_tests.jl | 1 - 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 1d4bc2929..c528a7402 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -83,6 +83,25 @@ steps: JULIA_AMDGPU_HIP_MUST_LOAD: "1" JULIA_AMDGPU_DISABLE_ARTIFACTS: "1" + - label: "Julia 1.10 Enzyme" + plugins: + - JuliaCI/julia#v1: + version: "1.10" + - JuliaCI/julia-test#v1: + test_args: "enzyme" + agents: + queue: "juliagpu" + rocm: "*" + rocmgpu: "*" + if: build.message !~ /\[skip tests\]/ + command: "julia --project -e 'using Pkg; Pkg.update()'" + timeout_in_minutes: 180 + env: + JULIA_NUM_THREADS: 4 + JULIA_AMDGPU_CORE_MUST_LOAD: "1" + JULIA_AMDGPU_HIP_MUST_LOAD: "1" + JULIA_AMDGPU_DISABLE_ARTIFACTS: "1" + - label: "GPU-less environment" plugins: - JuliaCI/julia#v1: diff --git a/t.jl b/t.jl index 0ce21d6d4..a83e39874 100644 --- a/t.jl +++ b/t.jl @@ -4,7 +4,6 @@ using EnzymeCore, Enzyme function square_kernel!(x) i = workitemIdx().x x[i] *= x[i] - AMDGPU.sync_workgroup() return end diff --git a/test/enzyme_tests.jl b/test/enzyme_tests.jl index d3a7216ce..a4f34ede8 100644 --- a/test/enzyme_tests.jl +++ b/test/enzyme_tests.jl @@ -12,7 +12,6 @@ end function square_kernel!(x) i = workitemIdx().x x[i] *= x[i] - AMDGPU.sync_workgroup() return end From 75a95ceadc38cc3cf984652a62e61981ae3bc66a Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Wed, 4 Sep 2024 00:10:49 +0300 Subject: [PATCH 06/10] Do not run enzyme tests by default --- test/runtests.jl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index ae69c0b76..5369a77b5 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -90,7 +90,10 @@ for test_name in ARGS """) end -const TARGET_TESTS = isempty(ARGS) ? TEST_NAMES : ARGS +# Do not run Enzyme tests by default. +const TARGET_TESTS = isempty(ARGS) ? + [t for t in TEST_NAMES if t != "enzyme"] : + ARGS if "enzyme" in TARGET_TESTS Pkg.add(["EnzymeCore", "Enzyme"]) From a46d07ce5c36eab5f1759e7ef83f47df573fa95a Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Wed, 4 Sep 2024 01:06:52 +0300 Subject: [PATCH 07/10] More reverse --- ext/EnzymeCoreExt/EnzymeCoreExt.jl | 64 +++++++++++++++++++++++++++--- test/enzyme_tests.jl | 26 ++++++++++-- 2 files changed, 82 insertions(+), 8 deletions(-) diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl index e0aae4e36..525e3aa88 100644 --- a/ext/EnzymeCoreExt/EnzymeCoreExt.jl +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -2,6 +2,7 @@ module EnzymeCoreExt using AMDGPU using EnzymeCore +using EnzymeCore: EnzymeRules using GPUCompiler function EnzymeCore.compiler_job_from_backend( @@ -11,7 +12,7 @@ function EnzymeCore.compiler_job_from_backend( return GPUCompiler.CompilerJob(mi, AMDGPU.compiler_config(AMDGPU.device())) end -function EnzymeCore.EnzymeRules.forward( +function EnzymeRules.forward( fn::Const{typeof(AMDGPU.hipfunction)}, ::Type{<: Duplicated}, f::Const{F}, tt::Const{TT}; kwargs... ) where {F, TT} @@ -19,7 +20,22 @@ function EnzymeCore.EnzymeRules.forward( return Duplicated(res, res) end -function EnzymeCore.EnzymeRules.forward( +function EnzymeRules.forward( + fn::Const{typeof(AMDGPU.hipfunction)}, ::Type{<: BatchDuplicated{T, N}}, + f::Const{F}, tt::Const{TT}; kwargs... +) where {F, TT, T, N} + res = fn.val(f.val, tt.val; kwargs...) + return BatchDuplicated(res, ntuple(_ -> res, Val(N))) +end + +function EnzymeRules.reverse( + config, fn::Const{typeof(AMDGPU.hipfunction)}, + ::Type{RT}, subtape, f, tt; kwargs..., +) where RT + return (nothing, nothing) +end + +function EnzymeRules.forward( fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, ) where {RT, IT} if RT <: Duplicated @@ -41,12 +57,19 @@ function EnzymeCore.EnzymeRules.forward( end end +function EnzymeRules.reverse( + config, fn::Const{typeof(AMDGPU.rocconvert)}, + ::Type{RT}, tape, x::IT, +) where {RT, IT} + return (nothing,) +end + function meta_fn(fn, args::Vararg{Any, N}) where N EnzymeCore.autodiff_deferred(Forward, fn, Const, args...) - nothing + return end -function EnzymeCore.EnzymeRules.forward( +function EnzymeRules.forward( fn::EnzymeCore.Annotation{AMDGPU.Runtime.HIPKernel{F, TT}}, ::Type{Const{Nothing}}, args...; kwargs..., ) where {F, TT} @@ -59,7 +82,7 @@ function EnzymeCore.EnzymeRules.forward( return end -function EnzymeCore.EnzymeRules.augmented_primal( +function EnzymeRules.augmented_primal( config, fn::Const{typeof(AMDGPU.rocconvert)}, ::Type{RT}, x::IT, ) where {RT, IT} primal = EnzymeRules.needs_primal(config) ? @@ -87,4 +110,35 @@ function EnzymeCore.EnzymeRules.augmented_primal( primal, shadow, nothing) end +function EnzymeRules.augmented_primal( + config, fn::Const{typeof(AMDGPU.hipfunction)}, + ::Type{RT}, f::Const{F}, + tt::Const{TT}; kwargs... +) where {F, CT, RT <: EnzymeCore.Annotation{CT}, TT} + res = fn.val(f.val, tt.val; kwargs...) + + primal = EnzymeRules.needs_primal(config) ? res : nothing + primal_T = EnzymeRules.needs_primal(config) ? CT : Nothing + + shadow = if EnzymeRules.needs_shadow(config) + if EnzymeRules.width(config) == 1 + res + else + ntuple(Val(EnzymeRules.width(config))) do i + Base.@_inline_meta + res + end + end + else + nothing + end + shadow_T = EnzymeRules.needs_shadow(config) ? + (EnzymeRules.width(config) == 1 ? + CT : NTuple{EnzymeRules.width(config), CT}) : + Nothing + + return EnzymeRules.AugmentedReturn{primal_T, shadow_T, Nothing}( + primal, shadow, nothing) +end + end diff --git a/test/enzyme_tests.jl b/test/enzyme_tests.jl index a4f34ede8..da25e71e2 100644 --- a/test/enzyme_tests.jl +++ b/test/enzyme_tests.jl @@ -20,12 +20,32 @@ function square!(x) return nothing end -@testset "Forward Kernel" begin +# @testset "Forward Kernel" begin +# A = ROCArray(collect(1.0:64.0)) +# dA = ROCArray(ones(Float64, 64)) +# Enzyme.autodiff(Forward, square!, Duplicated(A, dA)) +# @test all(dA .≈ (2:2:128)) + +# A = ROCArray(collect(1.0:64.0)) +# dA = ROCArray(ones(Float64, 64)) +# dA2 = ROCArray(ones(Float64, 64) .* 3.0) +# Enzyme.autodiff(Forward, square!, BatchDuplicated(A, (dA, dA2))) +# @test all(dA .≈ (2:2:128)) +# @test all(dA2 .≈ (2:2:128) .* 3) +# end + +@testset "Reverse Kernel" begin A = ROCArray(collect(1.0:64.0)) dA = ROCArray(ones(Float64, 64)) - Enzyme.autodiff(Forward, square!, Duplicated(A, dA)) + Enzyme.autodiff(Reverse, square!, Duplicated(A, dA)) @test all(dA .≈ (2:2:128)) -end + A = ROCArray(collect(1.0:64.0)) + dA = ROCArray(ones(Float64, 64)) + dA2 = ROCArray(ones(Float64, 64) .* 3.0) + Enzyme.autodiff(Reverse, square!, BatchDuplicated(A, (dA, dA2))) + @test all(dA .≈ (2:2:128)) + @test all(dA2 .≈ (2:2:128) .* 3) +end end From fcc028f6e4662ccb4100a009ac6ba983abc675d7 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Thu, 5 Sep 2024 20:20:16 +0300 Subject: [PATCH 08/10] Augment HIPKernel --- a.jl | 33 + devcode_linear/gpu_kernel_xx!_1.asm | 428 ++++ devcode_linear/gpu_kernel_xx!_1.lowered.jl | 46 + devcode_linear/gpu_kernel_xx!_1.opt.ll | 96 + devcode_linear/gpu_kernel_xx!_1.typed.jl | 842 +++++++ devcode_linear/gpu_kernel_xx!_1.unopt.ll | 440 ++++ devcode_size/gpu_kernel_xx!_1.asm | 809 +++++++ devcode_size/gpu_kernel_xx!_1.lowered.jl | 46 + devcode_size/gpu_kernel_xx!_1.opt.ll | 195 ++ devcode_size/gpu_kernel_xx!_1.typed.jl | 2303 ++++++++++++++++++++ devcode_size/gpu_kernel_xx!_1.unopt.ll | 872 ++++++++ ext/EnzymeCoreExt/EnzymeCoreExt.jl | 72 + t.jl | 2 +- 13 files changed, 6183 insertions(+), 1 deletion(-) create mode 100644 a.jl create mode 100644 devcode_linear/gpu_kernel_xx!_1.asm create mode 100644 devcode_linear/gpu_kernel_xx!_1.lowered.jl create mode 100644 devcode_linear/gpu_kernel_xx!_1.opt.ll create mode 100644 devcode_linear/gpu_kernel_xx!_1.typed.jl create mode 100644 devcode_linear/gpu_kernel_xx!_1.unopt.ll create mode 100644 devcode_size/gpu_kernel_xx!_1.asm create mode 100644 devcode_size/gpu_kernel_xx!_1.lowered.jl create mode 100644 devcode_size/gpu_kernel_xx!_1.opt.ll create mode 100644 devcode_size/gpu_kernel_xx!_1.typed.jl create mode 100644 devcode_size/gpu_kernel_xx!_1.unopt.ll diff --git a/a.jl b/a.jl new file mode 100644 index 000000000..966515560 --- /dev/null +++ b/a.jl @@ -0,0 +1,33 @@ +using AMDGPU +using KernelAbstractions + +function compute_tensors(tensor, kernel_fun, Nx, Ny, Nz) + kernel! = kernel_fun(get_backend(tensor)) + kernel!(tensor, Nx, Ny, Nz; ndrange=size(tensor)) + KernelAbstractions.synchronize(get_backend(tensor)) + return +end + +@kernel function kernel_xx!(tensor, Nx::Int64, Ny::Int64, Nz::Int64) + idx = @index(Global) + res = zero(eltype(tensor)) + for p in (-Nx):Nx + for q in Ny:(Ny + 2) + res += 2.0 + end + end + @inbounds tensor[idx] = res +end + +function main() + nx, ny, nz = 10, 1, 1 + Nx, Ny, Nz = 1, 1, 1 + # tensor = zeros(Float64, nx, ny, nz) + # compute_tensors(tensor, kernel_xx!, Nx, Ny, Nz) + # println("cpu:", tensor) + + tensor = AMDGPU.zeros(Float64, nx, ny, nz) + compute_tensors(tensor, kernel_xx!, Nx, Ny, Nz) + println("amd:", tensor) +end +main() diff --git a/devcode_linear/gpu_kernel_xx!_1.asm b/devcode_linear/gpu_kernel_xx!_1.asm new file mode 100644 index 000000000..d42515a53 --- /dev/null +++ b/devcode_linear/gpu_kernel_xx!_1.asm @@ -0,0 +1,428 @@ + .text + .amdgcn_target "amdgcn-amd-amdhsa--gfx1100" + .globl _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ ; -- Begin function _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + .p2align 8 + .type _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_,@function +_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_: ; @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ +; %bb.0: ; %conversion + s_clause 0x1 + s_load_b64 s[2:3], s[0:1], 0x68 + s_load_b64 s[4:5], s[0:1], 0x58 + v_add_nc_u32_e32 v1, 1, v0 + s_waitcnt lgkmcnt(0) + s_mul_i32 s3, s3, s15 + s_mul_hi_u32 s6, s2, s15 + s_mul_i32 s8, s2, s15 + s_add_i32 s3, s6, s3 + v_add_co_u32 v1, s2, s8, v1 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_co_ci_u32_e64 v2, null, s3, 0, s2 + v_cmp_lt_i64_e32 vcc_lo, 0, v[1:2] + v_cmp_ge_i64_e64 s2, s[4:5], v[1:2] + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) + s_and_b32 s2, vcc_lo, s2 + s_and_saveexec_b32 s4, s2 + s_cbranch_execz .LBB0_8 +; %bb.1: ; %L103 + s_clause 0x1 + s_load_b128 s[4:7], s[0:1], 0x98 + s_load_b64 s[0:1], s[0:1], 0x88 + v_mov_b32_e32 v3, 0 + v_mov_b32_e32 v4, 0 + s_waitcnt lgkmcnt(0) + s_sub_u32 s10, 0, s4 + s_subb_u32 s11, 0, s5 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_cmp_gt_i64_e64 s2, s[10:11], s[4:5] + v_cndmask_b32_e64 v2, 0, -1, s2 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1) + v_xor_b32_e32 v1, s4, v2 + v_xor_b32_e32 v2, s5, v2 + v_cmp_gt_i64_e32 vcc_lo, s[10:11], v[1:2] + s_cbranch_vccnz .LBB0_7 +; %bb.2: ; %L235.preheader + s_sub_u32 s4, 0, s6 + s_subb_u32 s5, 0, s7 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_cmp_gt_i64_e64 s2, s[4:5], s[6:7] + v_cndmask_b32_e64 v3, 0, -1, s2 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3) + v_readfirstlane_b32 s12, v3 + v_mov_b32_e32 v3, 0 + v_mov_b32_e32 v4, 0 + s_mov_b32 s13, s12 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) + s_xor_b64 s[12:13], s[12:13], s[6:7] + v_cmp_ge_i64_e64 s2, s[12:13], s[4:5] + s_add_u32 s6, s12, s6 + s_addc_u32 s5, s13, s7 + s_add_u32 s4, s6, 1 + s_addc_u32 s5, s5, 0 + s_branch .LBB0_4 +.LBB0_3: ; %L267 + ; in Loop: Header=BB0_4 Depth=1 + v_cmp_ne_u64_e32 vcc_lo, s[10:11], v[1:2] + s_add_u32 s10, s10, 1 + s_addc_u32 s11, s11, 0 + s_cbranch_vccz .LBB0_7 +.LBB0_4: ; %L235 + ; =>This Loop Header: Depth=1 + ; Child Loop BB0_6 Depth 2 + s_and_not1_b32 vcc_lo, exec_lo, s2 + s_cbranch_vccnz .LBB0_3 +; %bb.5: ; %L254.preheader + ; in Loop: Header=BB0_4 Depth=1 + s_mov_b64 s[6:7], s[4:5] +.LBB0_6: ; %L254 + ; Parent Loop BB0_4 Depth=1 + ; => This Inner Loop Header: Depth=2 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) + v_add_f64 v[3:4], v[3:4], 2.0 + s_add_u32 s6, s6, -1 + s_addc_u32 s7, s7, -1 + s_cmp_lg_u64 s[6:7], 0 + s_cbranch_scc1 .LBB0_6 + s_branch .LBB0_3 +.LBB0_7: ; %L293 + v_add_co_u32 v0, s2, v0, s8 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_co_ci_u32_e64 v1, null, 0, s3, s2 + v_lshlrev_b64 v[0:1], 3, v[0:1] + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) + v_add_co_u32 v0, vcc_lo, v0, s0 + v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo + global_store_b64 v[0:1], v[3:4], off +.LBB0_8: ; %L299 + s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) + s_endpgm + .section .rodata,#alloc + .p2align 6 + .amdhsa_kernel _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + .amdhsa_group_segment_fixed_size 0 + .amdhsa_private_segment_fixed_size 0 + .amdhsa_kernarg_size 176 + .amdhsa_user_sgpr_count 15 + .amdhsa_user_sgpr_dispatch_ptr 0 + .amdhsa_user_sgpr_queue_ptr 0 + .amdhsa_user_sgpr_kernarg_segment_ptr 1 + .amdhsa_user_sgpr_dispatch_id 0 + .amdhsa_user_sgpr_private_segment_size 0 + .amdhsa_wavefront_size32 1 + .amdhsa_uses_dynamic_stack 0 + .amdhsa_enable_private_segment 0 + .amdhsa_system_sgpr_workgroup_id_x 1 + .amdhsa_system_sgpr_workgroup_id_y 0 + .amdhsa_system_sgpr_workgroup_id_z 0 + .amdhsa_system_sgpr_workgroup_info 0 + .amdhsa_system_vgpr_workitem_id 0 + .amdhsa_next_free_vgpr 5 + .amdhsa_next_free_sgpr 16 + .amdhsa_float_round_mode_32 0 + .amdhsa_float_round_mode_16_64 0 + .amdhsa_float_denorm_mode_32 3 + .amdhsa_float_denorm_mode_16_64 3 + .amdhsa_dx10_clamp 1 + .amdhsa_ieee_mode 1 + .amdhsa_fp16_overflow 0 + .amdhsa_workgroup_processor_mode 1 + .amdhsa_memory_ordered 1 + .amdhsa_forward_progress 0 + .amdhsa_shared_vgpr_count 0 + .amdhsa_exception_fp_ieee_invalid_op 0 + .amdhsa_exception_fp_denorm_src 0 + .amdhsa_exception_fp_ieee_div_zero 0 + .amdhsa_exception_fp_ieee_overflow 0 + .amdhsa_exception_fp_ieee_underflow 0 + .amdhsa_exception_fp_ieee_inexact 0 + .amdhsa_exception_int_div_zero 0 + .end_amdhsa_kernel + .text +.Lfunc_end0: + .size _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_, .Lfunc_end0-_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + ; -- End function + .section .AMDGPU.csdata +; Kernel info: +; codeLenInByte = 408 +; NumSgprs: 18 +; NumVgprs: 5 +; ScratchSize: 0 +; MemoryBound: 0 +; FloatMode: 240 +; IeeeMode: 1 +; LDSByteSize: 0 bytes/workgroup (compile time only) +; SGPRBlocks: 2 +; VGPRBlocks: 0 +; NumSGPRsForWavesPerEU: 18 +; NumVGPRsForWavesPerEU: 5 +; Occupancy: 16 +; WaveLimiterHint : 0 +; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0 +; COMPUTE_PGM_RSRC2:USER_SGPR: 15 +; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0 +; COMPUTE_PGM_RSRC2:TGID_X_EN: 1 +; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0 +; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0 +; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0 + .text + .p2alignl 7, 3214868480 + .fill 96, 4, 3214868480 + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .section ".note.GNU-stack" + .amdgpu_metadata +--- +amdhsa.kernels: + - .args: + - .name: state + .offset: 0 + .size: 88 + .value_kind: by_value + - .offset: 88 + .size: 24 + .value_kind: by_value + - .offset: 112 + .size: 40 + .value_kind: by_value + - .offset: 152 + .size: 8 + .value_kind: by_value + - .offset: 160 + .size: 8 + .value_kind: by_value + - .offset: 168 + .size: 8 + .value_kind: by_value + .group_segment_fixed_size: 0 + .kernarg_segment_align: 8 + .kernarg_segment_size: 176 + .language: OpenCL C + .language_version: + - 2 + - 0 + .max_flat_workgroup_size: 1024 + .name: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + .private_segment_fixed_size: 0 + .sgpr_count: 18 + .sgpr_spill_count: 0 + .symbol: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_.kd + .uses_dynamic_stack: false + .vgpr_count: 5 + .vgpr_spill_count: 0 + .wavefront_size: 32 +amdhsa.target: amdgcn-amd-amdhsa--gfx1100 +amdhsa.version: + - 1 + - 1 +... + + .end_amdgpu_metadata diff --git a/devcode_linear/gpu_kernel_xx!_1.lowered.jl b/devcode_linear/gpu_kernel_xx!_1.lowered.jl new file mode 100644 index 000000000..9f3566772 --- /dev/null +++ b/devcode_linear/gpu_kernel_xx!_1.lowered.jl @@ -0,0 +1,46 @@ +CodeInfo( +1 ─ Core.NewvarNode(:(val)) +│ Core.NewvarNode(:(@_8)) +│ Core.NewvarNode(:(res)) +│ Core.NewvarNode(:(idx)) +│ %5 = (KernelAbstractions.__validindex)(__ctx__) +└── goto #9 if not %5 +2 ─ idx = KernelAbstractions.__index_Global_Linear(__ctx__) +│ %8 = Main.eltype(tensor) +│ res = Main.zero(%8) +│ %10 = -Nx +│ %11 = %10:Nx +│ @_8 = Base.iterate(%11) +│ %13 = @_8 === nothing +│ %14 = Base.not_int(%13) +└── goto #8 if not %14 +3 ┄ %16 = @_8 +│ p = Core.getfield(%16, 1) +│ %18 = Core.getfield(%16, 2) +│ %19 = -Ny +│ %20 = %19:Ny +│ @_11 = Base.iterate(%20) +│ %22 = @_11 === nothing +│ %23 = Base.not_int(%22) +└── goto #6 if not %23 +4 ┄ %25 = @_11 +│ q = Core.getfield(%25, 1) +│ %27 = Core.getfield(%25, 2) +│ res = res + 2.0 +│ @_11 = Base.iterate(%20, %27) +│ %30 = @_11 === nothing +│ %31 = Base.not_int(%30) +└── goto #6 if not %31 +5 ─ goto #4 +6 ┄ @_8 = Base.iterate(%11, %18) +│ %35 = @_8 === nothing +│ %36 = Base.not_int(%35) +└── goto #8 if not %36 +7 ─ goto #3 +8 ┄ nothing +│ Base.setindex!(tensor, res, idx) +│ val = res +│ nothing +└── val +9 ┄ return Main.nothing +) diff --git a/devcode_linear/gpu_kernel_xx!_1.opt.ll b/devcode_linear/gpu_kernel_xx!_1.opt.ll new file mode 100644 index 000000000..87632e761 --- /dev/null +++ b/devcode_linear/gpu_kernel_xx!_1.opt.ll @@ -0,0 +1,96 @@ +; ModuleID = 'start' +source_filename = "start" +target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:10:11:12:13" +target triple = "amdgcn-amd-amdhsa" + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.x() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.x() #0 + +define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #1 { +conversion: + %.fca.0.0.0.0.extract = extractvalue { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, 0, 0, 0, 0 + %.fca.1.1.0.0.0.extract = extractvalue { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, 1, 1, 0, 0, 0 + %.fca.1.extract = extractvalue { [3 x i64], i8 addrspace(1)*, i64 } %1, 1 + %5 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 + %6 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 + %7 = add nuw nsw i32 %6, 1 + %8 = zext i32 %7 to i64 + %9 = zext i32 %5 to i64 + %10 = mul i64 %.fca.1.1.0.0.0.extract, %9 + %11 = add i64 %10, %8 + %12 = icmp slt i64 %11, 1 + %13 = icmp sgt i64 %11, %.fca.0.0.0.0.extract + %14 = or i1 %12, %13 + br i1 %14, label %L299, label %L103 + +L103: ; preds = %conversion + %15 = sub i64 0, %2 + %.not = icmp sgt i64 %15, %2 + %16 = sext i1 %.not to i64 + %value_phi = xor i64 %16, %2 + %.not6.not = icmp slt i64 %value_phi, %15 + br i1 %.not6.not, label %L293, label %L235.preheader + +L235.preheader: ; preds = %L103 + %17 = sub i64 0, %3 + %.not7 = icmp sgt i64 %17, %3 + %18 = sext i1 %.not7 to i64 + %value_phi5 = xor i64 %18, %3 + %.not8.not = icmp slt i64 %value_phi5, %17 + br label %L235 + +L235: ; preds = %L267, %L235.preheader + %value_phi3 = phi i64 [ %21, %L267 ], [ %15, %L235.preheader ] + %value_phi4 = phi double [ %value_phi12, %L267 ], [ 0.000000e+00, %L235.preheader ] + br i1 %.not8.not, label %L267, label %L254 + +L254: ; preds = %L254, %L235 + %value_phi8 = phi double [ %19, %L254 ], [ %value_phi4, %L235 ] + %value_phi9 = phi i64 [ %20, %L254 ], [ %17, %L235 ] + %19 = fadd double %value_phi8, 2.000000e+00 + %.not9 = icmp eq i64 %value_phi9, %value_phi5 + %20 = add i64 %value_phi9, 1 + br i1 %.not9, label %L267, label %L254 + +L267: ; preds = %L254, %L235 + %value_phi12 = phi double [ %value_phi4, %L235 ], [ %19, %L254 ] + %.not10 = icmp eq i64 %value_phi3, %value_phi + %21 = add i64 %value_phi3, 1 + br i1 %.not10, label %L293, label %L235 + +L293: ; preds = %L267, %L103 + %value_phi15 = phi double [ 0.000000e+00, %L103 ], [ %value_phi12, %L267 ] + %22 = add nsw i64 %8, -1 + %23 = add i64 %22, %10 + %24 = bitcast i8 addrspace(1)* %.fca.1.extract to double addrspace(1)* + %25 = getelementptr inbounds double, double addrspace(1)* %24, i64 %23 + store double %value_phi15, double addrspace(1)* %25, align 8, !tbaa !9 + br label %L299 + +L299: ; preds = %L293, %conversion + ret void +} + +attributes #0 = { nounwind readnone speculatable willreturn } +attributes #1 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} +!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} +!julia.kernel = !{!6} + +!0 = !{i32 2, !"Dwarf Version", i32 4} +!1 = !{i32 2, !"Debug Info Version", i32 3} +!2 = !{i32 1, !"wchar_size", i32 4} +!3 = !{i32 7, !"PIC Level", i32 1} +!4 = !{i32 2, i32 0} +!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} +!6 = !{void ({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} +!7 = !{i32 0, i32 -2} +!8 = !{i32 0, i32 1023} +!9 = !{!10, !10, i64 0, i64 0} +!10 = !{!"custom_tbaa_addrspace(1)", !11, i64 0} +!11 = !{!"custom_tbaa"} diff --git a/devcode_linear/gpu_kernel_xx!_1.typed.jl b/devcode_linear/gpu_kernel_xx!_1.typed.jl new file mode 100644 index 000000000..0ceea95b5 --- /dev/null +++ b/devcode_linear/gpu_kernel_xx!_1.typed.jl @@ -0,0 +1,842 @@ +CodeInfo( + @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:94 within `gpu_kernel_xx!` + ┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:144 within `#__validindex` + │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` + ││┌ @ Base.jl:37 within `getproperty` +1 ───│││ %1 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{1, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}} +│ │└└ +│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %2 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ ││││││ %3 = Base.llvmcall(%2, UInt32, Tuple{})::UInt32 +│ ││││└└ +│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ │││││ %4 = Base.add_int(%3, 0x00000001)::UInt32 +│ ││└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %5 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%5, UInt32, Tuple{})::UInt32 +│ ││└└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %7 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%7, UInt32, Tuple{})::UInt32 +│ │└└└└└ +│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %9 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ ││││││ %10 = Base.llvmcall(%9, UInt32, Tuple{})::UInt32 +│ ││││└└ +│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ │││││ %11 = Base.add_int(%10, 0x00000001)::UInt32 +│ ││└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %12 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%12, UInt32, Tuple{})::UInt32 +│ ││└└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %14 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%14, UInt32, Tuple{})::UInt32 +│ │└└└└└ +│ │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` +│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` +│ │││┌ @ Base.jl:37 within `getproperty` +│ ││││ %16 = Base.getfield(%1, :blocks)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ ││└└ +│ ││┌ @ abstractarray.jl:1291 within `getindex` +│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ ││││┌ @ indices.jl:359 within `_to_indices1` +│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ ││││││┌ @ number.jl:7 within `convert` +│ │││││││┌ @ boot.jl:784 within `Int64` +│ ││││││││┌ @ boot.jl:708 within `toInt64` +│ │││││││││ %17 = Core.zext_int(Core.Int64, %4)::Int64 +│ │││└└└└└└ +│ │││┌ @ abstractarray.jl:1341 within `_getindex` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────│││││ goto #6 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +2 ───││││││ %19 = Core.tuple(%17)::Tuple{Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ ││││││┌ @ abstractarray.jl:389 within `eachindex` +│ │││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││┌ @ multidimensional.jl:344 within `axes` +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %20 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}} +│ │││││││││└ +│ │││││││││┌ @ tuple.jl:291 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %21 = Base.getfield(%20, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %22 = Base.getfield(%21, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %23 = Base.slt_int(%22, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %24 = Core.ifelse(%23, 0, %22)::Int64 +│ ││││││└└└└└└└└└└ +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %25 = Base.sub_int(%17, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %26 = Base.bitcast(UInt64, %25)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %27 = Base.bitcast(UInt64, %24)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %28 = Base.ult_int(%26, %27)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #4 if not %28 +3 ───││││││ goto #5 +4 ───││││││ invoke Base.throw_boundserror(%16::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %19::Tuple{Int64})::Union{} +└────││││││ unreachable +5 ───││││││ nothing::Nothing + │││││└ + │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + │││││┌ @ Base.jl:37 within `getproperty` +6 ┄──││││││ %34 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:318 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %35 = Base.getfield(%34, 1, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ │││││││┌ @ range.jl:937 within `getindex` +└────││││││││ goto #10 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +7 ───││││││││││ %37 = Base.slt_int(0, %17)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %38 = Base.getfield(%35, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %39 = Base.sle_int(%17, %38)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %40 = Base.and_int(%37, %39)::Bool +│ ││││││││└ +└────││││││││ goto #9 if not %40 +8 ───││││││││ goto #10 +9 ───││││││││ invoke Base.throw_boundserror(%35::Base.OneTo{Int64}, %17::Int64)::Union{} +└────││││││││ unreachable +10 ┄─││││││││ goto #11 +11 ──││││││││ goto #12 +12 ──││││││││ goto #13 +13 ──││││││││ goto #14 +14 ──││││││││ goto #15 +15 ──││││││││ goto #16 + ││└└└└└└ + ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + │││┌ @ Base.jl:37 within `getproperty` +16 ──││││ %51 = Base.getfield(%1, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ ││└└ +│ ││┌ @ abstractarray.jl:1291 within `getindex` +│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ ││││┌ @ indices.jl:359 within `_to_indices1` +│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ ││││││┌ @ number.jl:7 within `convert` +│ │││││││┌ @ boot.jl:784 within `Int64` +│ ││││││││┌ @ boot.jl:708 within `toInt64` +│ │││││││││ %52 = Core.zext_int(Core.Int64, %11)::Int64 +│ │││└└└└└└ +│ │││┌ @ abstractarray.jl:1341 within `_getindex` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────│││││ goto #21 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +17 ──││││││ %54 = Core.tuple(%52)::Tuple{Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ ││││││┌ @ abstractarray.jl:389 within `eachindex` +│ │││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││┌ @ multidimensional.jl:344 within `axes` +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %55 = Base.getfield(%51, :indices)::Tuple{Base.OneTo{Int64}} +│ │││││││││└ +│ │││││││││┌ @ tuple.jl:291 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %56 = Base.getfield(%55, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %57 = Base.getfield(%56, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %58 = Base.slt_int(%57, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %59 = Core.ifelse(%58, 0, %57)::Int64 +│ ││││││└└└└└└└└└└ +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %60 = Base.sub_int(%52, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %61 = Base.bitcast(UInt64, %60)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %62 = Base.bitcast(UInt64, %59)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %63 = Base.ult_int(%61, %62)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #19 if not %63 +18 ──││││││ goto #20 +19 ──││││││ invoke Base.throw_boundserror(%51::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %54::Tuple{Int64})::Union{} +└────││││││ unreachable +20 ──││││││ nothing::Nothing + │││││└ + │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + │││││┌ @ Base.jl:37 within `getproperty` +21 ┄─││││││ %69 = Base.getfield(%51, :indices)::Tuple{Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:318 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %70 = Base.getfield(%69, 1, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ │││││││┌ @ range.jl:937 within `getindex` +└────││││││││ goto #25 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +22 ──││││││││││ %72 = Base.slt_int(0, %52)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %73 = Base.getfield(%70, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %74 = Base.sle_int(%52, %73)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %75 = Base.and_int(%72, %74)::Bool +│ ││││││││└ +└────││││││││ goto #24 if not %75 +23 ──││││││││ goto #25 +24 ──││││││││ invoke Base.throw_boundserror(%70::Base.OneTo{Int64}, %52::Int64)::Union{} +└────││││││││ unreachable +25 ┄─││││││││ goto #26 +26 ──││││││││ goto #27 +27 ──││││││││ goto #28 +28 ──││││││││ goto #29 +29 ──││││││││ goto #30 +30 ──││││││││ goto #31 + ││└└└└└└ + ││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 + ││┌ @ ntuple.jl:48 within `ntuple` + │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` + ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + │││││┌ @ Base.jl:37 within `getproperty` +31 ──││││││ %86 = Base.getfield(%1, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ ││││└└ +│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %87 = Base.getfield(%86, :indices)::Tuple{Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:291 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %88 = Base.getfield(%87, 1, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ range.jl:779 within `length` +│ │││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││ %89 = Base.getfield(%88, :stop)::Int64 +│ ││││└└└└ +│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ ││││┌ @ int.jl:86 within `-` +│ │││││ %90 = Base.sub_int(%17, 1)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:88 within `*` +│ │││││ %91 = Base.mul_int(%90, %89)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:87 within `+` +│ │││││ %92 = Base.add_int(%91, %52)::Int64 +└────│││││ goto #32 + │└└└└ + │ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:145 within `#__validindex` + │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` + ││┌ @ Base.jl:37 within `getproperty` +32 ──│││ %94 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ │└└ +│ │┌ @ multidimensional.jl:471 within `in` +│ ││┌ @ Base.jl:37 within `getproperty` +│ │││ %95 = Base.getfield(%94, :indices)::Tuple{Base.OneTo{Int64}} +│ ││└ +│ ││┌ @ tuple.jl:318 within `map` +│ │││┌ @ tuple.jl:31 within `getindex` +│ ││││ %96 = Base.getfield(%95, 1, true)::Base.OneTo{Int64} +│ │││└ +│ │││┌ @ range.jl:1439 within `in` +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %97 = Base.sle_int(1, %92)::Bool +│ ││││└ +│ ││││┌ @ range.jl:839 within `last` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %98 = Base.getfield(%96, :stop)::Int64 +│ ││││└└ +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %99 = Base.sle_int(%92, %98)::Bool +│ ││││└ +│ ││││┌ @ bool.jl:38 within `&` +│ │││││ %100 = Base.and_int(%97, %99)::Bool +│ │└└└└ +└────│ goto #33 + └ +33 ── goto #109 if not %100 + @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:95 within `gpu_kernel_xx!` + ┌ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:12 within `macro expansion` + │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:125 within `#__index_Global_Linear` + ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` + │││┌ @ Base.jl:37 within `getproperty` +34 ──││││ %103 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{1, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}} +│ ││└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %104 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ │││││││ %105 = Base.llvmcall(%104, UInt32, Tuple{})::UInt32 +│ │││││└└ +│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ ││││││ %106 = Base.add_int(%105, 0x00000001)::UInt32 +│ │││└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %107 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%107, UInt32, Tuple{})::UInt32 +│ │││└└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %109 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%109, UInt32, Tuple{})::UInt32 +│ ││└└└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %111 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ │││││││ %112 = Base.llvmcall(%111, UInt32, Tuple{})::UInt32 +│ │││││└└ +│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ ││││││ %113 = Base.add_int(%112, 0x00000001)::UInt32 +│ │││└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %114 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%114, UInt32, Tuple{})::UInt32 +│ │││└└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %116 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%116, UInt32, Tuple{})::UInt32 +│ ││└└└└└ +│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` +│ │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` +│ ││││┌ @ Base.jl:37 within `getproperty` +│ │││││ %118 = Base.getfield(%103, :blocks)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ │││└└ +│ │││┌ @ abstractarray.jl:1291 within `getindex` +│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ │││││┌ @ indices.jl:359 within `_to_indices1` +│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ │││││││┌ @ number.jl:7 within `convert` +│ ││││││││┌ @ boot.jl:784 within `Int64` +│ │││││││││┌ @ boot.jl:708 within `toInt64` +│ ││││││││││ %119 = Core.zext_int(Core.Int64, %106)::Int64 +│ ││││└└└└└└ +│ ││││┌ @ abstractarray.jl:1341 within `_getindex` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────││││││ goto #39 if not false + ││││││┌ @ abstractarray.jl:700 within `checkbounds` +35 ──│││││││ %121 = Core.tuple(%119)::Tuple{Int64} +│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ │││││││┌ @ abstractarray.jl:389 within `eachindex` +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ multidimensional.jl:344 within `axes` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %122 = Base.getfield(%118, :indices)::Tuple{Base.OneTo{Int64}} +│ ││││││││││└ +│ ││││││││││┌ @ tuple.jl:291 within `map` +│ │││││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││││ %123 = Base.getfield(%122, 1, true)::Base.OneTo{Int64} +│ │││││││││││└ +│ │││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││││ %124 = Base.getfield(%123, :stop)::Int64 +│ │││││││││││││└└ +│ │││││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││││ %125 = Base.slt_int(%124, 0)::Bool +│ ││││││││││││││││└ +│ ││││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││││ %126 = Core.ifelse(%125, 0, %124)::Int64 +│ │││││││└└└└└└└└└└ +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %127 = Base.sub_int(%119, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %128 = Base.bitcast(UInt64, %127)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %129 = Base.bitcast(UInt64, %126)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %130 = Base.ult_int(%128, %129)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││││ goto #37 if not %130 +36 ──│││││││ goto #38 +37 ──│││││││ invoke Base.throw_boundserror(%118::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %121::Tuple{Int64})::Union{} +└────│││││││ unreachable +38 ──│││││││ nothing::Nothing + ││││││└ + ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + ││││││┌ @ Base.jl:37 within `getproperty` +39 ┄─│││││││ %136 = Base.getfield(%118, :indices)::Tuple{Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:318 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %137 = Base.getfield(%136, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ ││││││││┌ @ range.jl:937 within `getindex` +└────│││││││││ goto #43 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +40 ──│││││││││││ %139 = Base.slt_int(0, %119)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %140 = Base.getfield(%137, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %141 = Base.sle_int(%119, %140)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %142 = Base.and_int(%139, %141)::Bool +│ │││││││││└ +└────│││││││││ goto #42 if not %142 +41 ──│││││││││ goto #43 +42 ──│││││││││ invoke Base.throw_boundserror(%137::Base.OneTo{Int64}, %119::Int64)::Union{} +└────│││││││││ unreachable +43 ┄─│││││││││ goto #44 +44 ──│││││││││ goto #45 +45 ──│││││││││ goto #46 +46 ──│││││││││ goto #47 +47 ──│││││││││ goto #48 +48 ──│││││││││ goto #49 + │││└└└└└└ + │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + ││││┌ @ Base.jl:37 within `getproperty` +49 ──│││││ %153 = Base.getfield(%103, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ │││└└ +│ │││┌ @ abstractarray.jl:1291 within `getindex` +│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ │││││┌ @ indices.jl:359 within `_to_indices1` +│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ │││││││┌ @ number.jl:7 within `convert` +│ ││││││││┌ @ boot.jl:784 within `Int64` +│ │││││││││┌ @ boot.jl:708 within `toInt64` +│ ││││││││││ %154 = Core.zext_int(Core.Int64, %113)::Int64 +│ ││││└└└└└└ +│ ││││┌ @ abstractarray.jl:1341 within `_getindex` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────││││││ goto #54 if not false + ││││││┌ @ abstractarray.jl:700 within `checkbounds` +50 ──│││││││ %156 = Core.tuple(%154)::Tuple{Int64} +│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ │││││││┌ @ abstractarray.jl:389 within `eachindex` +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ multidimensional.jl:344 within `axes` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %157 = Base.getfield(%153, :indices)::Tuple{Base.OneTo{Int64}} +│ ││││││││││└ +│ ││││││││││┌ @ tuple.jl:291 within `map` +│ │││││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││││ %158 = Base.getfield(%157, 1, true)::Base.OneTo{Int64} +│ │││││││││││└ +│ │││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││││ %159 = Base.getfield(%158, :stop)::Int64 +│ │││││││││││││└└ +│ │││││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││││ %160 = Base.slt_int(%159, 0)::Bool +│ ││││││││││││││││└ +│ ││││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││││ %161 = Core.ifelse(%160, 0, %159)::Int64 +│ │││││││└└└└└└└└└└ +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %162 = Base.sub_int(%154, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %163 = Base.bitcast(UInt64, %162)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %164 = Base.bitcast(UInt64, %161)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %165 = Base.ult_int(%163, %164)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││││ goto #52 if not %165 +51 ──│││││││ goto #53 +52 ──│││││││ invoke Base.throw_boundserror(%153::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %156::Tuple{Int64})::Union{} +└────│││││││ unreachable +53 ──│││││││ nothing::Nothing + ││││││└ + ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + ││││││┌ @ Base.jl:37 within `getproperty` +54 ┄─│││││││ %171 = Base.getfield(%153, :indices)::Tuple{Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:318 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %172 = Base.getfield(%171, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ ││││││││┌ @ range.jl:937 within `getindex` +└────│││││││││ goto #58 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +55 ──│││││││││││ %174 = Base.slt_int(0, %154)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %175 = Base.getfield(%172, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %176 = Base.sle_int(%154, %175)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %177 = Base.and_int(%174, %176)::Bool +│ │││││││││└ +└────│││││││││ goto #57 if not %177 +56 ──│││││││││ goto #58 +57 ──│││││││││ invoke Base.throw_boundserror(%172::Base.OneTo{Int64}, %154::Int64)::Union{} +└────│││││││││ unreachable +58 ┄─│││││││││ goto #59 +59 ──│││││││││ goto #60 +60 ──│││││││││ goto #61 +61 ──│││││││││ goto #62 +62 ──│││││││││ goto #63 +63 ──│││││││││ goto #64 + │││└└└└└└ + │││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 + │││┌ @ ntuple.jl:48 within `ntuple` + ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` + │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + ││││││┌ @ Base.jl:37 within `getproperty` +64 ──│││││││ %188 = Base.getfield(%103, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ │││││└└ +│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ ││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││ %189 = Base.getfield(%188, :indices)::Tuple{Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:291 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %190 = Base.getfield(%189, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ range.jl:779 within `length` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %191 = Base.getfield(%190, :stop)::Int64 +│ │││││└└└└ +│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ │││││┌ @ int.jl:86 within `-` +│ ││││││ %192 = Base.sub_int(%119, 1)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:88 within `*` +│ ││││││ %193 = Base.mul_int(%192, %191)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:87 within `+` +│ ││││││ %194 = Base.add_int(%193, %154)::Int64 +└────││││││ goto #65 + ││└└└└ + ││ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:127 within `#__index_Global_Linear` + ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` + │││┌ @ Base.jl:37 within `getproperty` +65 ──││││ %196 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} +│ ││└└ +│ ││┌ @ multidimensional.jl:576 within `LinearIndices` +│ │││┌ @ Base.jl:37 within `getproperty` +│ ││││ %197 = Base.getfield(%196, :indices)::Tuple{Base.OneTo{Int64}} +│ │││└ +│ │││ @ multidimensional.jl:576 within `LinearIndices` @ indices.jl:476 +│ │││ %198 = %new(LinearIndices{1, Tuple{Base.OneTo{Int64}}}, %197)::LinearIndices{1, Tuple{Base.OneTo{Int64}}} +│ ││└ +│ ││┌ @ abstractarray.jl:1291 within `getindex` +│ │││┌ @ abstractarray.jl:1319 within `_getindex` +│ ││││┌ @ indices.jl:510 within `getindex` +└────│││││ goto #70 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +66 ──││││││ %200 = Core.tuple(%194)::Tuple{Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ ││││││┌ @ abstractarray.jl:389 within `eachindex` +│ │││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││┌ @ indices.jl:505 within `axes` +│ │││││││││┌ @ tuple.jl:291 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %201 = Base.getfield(%197, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %202 = Base.getfield(%201, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %203 = Base.slt_int(%202, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %204 = Core.ifelse(%203, 0, %202)::Int64 +│ ││││││└└└└└└└└└└ +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %205 = Base.sub_int(%194, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %206 = Base.bitcast(UInt64, %205)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %207 = Base.bitcast(UInt64, %204)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %208 = Base.ult_int(%206, %207)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #68 if not %208 +67 ──││││││ goto #69 +68 ──││││││ invoke Base.throw_boundserror(%198::LinearIndices{1, Tuple{Base.OneTo{Int64}}}, %200::Tuple{Int64})::Union{} +└────││││││ unreachable +69 ──││││││ nothing::Nothing +70 ┄─││││││ goto #71 +71 ──││││││ goto #72 +72 ──││││││ goto #73 +73 ──││││││ goto #74 + │└└└└└ + │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:14 within `macro expansion` + │┌ @ int.jl:85 within `-` +74 ──││ %218 = Base.neg_int(Nx)::Int64 +│ │└ +│ │┌ @ range.jl:5 within `Colon` +│ ││┌ @ range.jl:403 within `UnitRange` +│ │││┌ @ range.jl:414 within `unitrange_last` +│ ││││┌ @ operators.jl:425 within `>=` +│ │││││┌ @ int.jl:514 within `<=` +│ ││││││ %219 = Base.sle_int(%218, Nx)::Bool +│ ││││└└ +└────││││ goto #76 if not %219 +75 ──││││ goto #77 + ││││┌ @ int.jl:86 within `-` +76 ──│││││ %222 = Base.sub_int(%218, 1)::Int64 +└────│││││ goto #77 + │││└└ +77 ┄─│││ %224 = φ (#75 => Nx, #76 => %222)::Int64 +└────│││ goto #78 +78 ──│││ goto #79 + │└└ + │┌ @ range.jl:897 within `iterate` + ││┌ @ range.jl:672 within `isempty` + │││┌ @ operators.jl:378 within `>` + ││││┌ @ int.jl:83 within `<` +79 ──│││││ %227 = Base.slt_int(%224, %218)::Bool +│ ││└└└ +└────││ goto #81 if not %227 +80 ──││ goto #82 +81 ──││ goto #82 + │└ +82 ┄─│ %231 = φ (#80 => true, #81 => false)::Bool +│ │ %232 = φ (#81 => %218)::Int64 +│ │ %233 = Base.not_int(%231)::Bool +└────│ goto #102 if not %233 +83 ┄─│ %235 = φ (#82 => %232, #101 => %273)::Int64 +│ │ %236 = φ (#82 => 0.0, #101 => %267)::Float64 +│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:15 within `macro expansion` +│ │┌ @ int.jl:85 within `-` +│ ││ %237 = Base.neg_int(Ny)::Int64 +│ │└ +│ │┌ @ range.jl:5 within `Colon` +│ ││┌ @ range.jl:403 within `UnitRange` +│ │││┌ @ range.jl:414 within `unitrange_last` +│ ││││┌ @ operators.jl:425 within `>=` +│ │││││┌ @ int.jl:514 within `<=` +│ ││││││ %238 = Base.sle_int(%237, Ny)::Bool +│ ││││└└ +└────││││ goto #85 if not %238 +84 ──││││ goto #86 + ││││┌ @ int.jl:86 within `-` +85 ──│││││ %241 = Base.sub_int(%237, 1)::Int64 +└────│││││ goto #86 + │││└└ +86 ┄─│││ %243 = φ (#84 => Ny, #85 => %241)::Int64 +└────│││ goto #87 +87 ──│││ goto #88 + │└└ + │┌ @ range.jl:897 within `iterate` + ││┌ @ range.jl:672 within `isempty` + │││┌ @ operators.jl:378 within `>` + ││││┌ @ int.jl:83 within `<` +88 ──│││││ %246 = Base.slt_int(%243, %237)::Bool +│ ││└└└ +└────││ goto #90 if not %246 +89 ──││ goto #91 +90 ──││ goto #91 + │└ +91 ┄─│ %250 = φ (#89 => true, #90 => false)::Bool +│ │ %251 = φ (#90 => %237)::Int64 +│ │ %252 = Base.not_int(%250)::Bool +└────│ goto #97 if not %252 +92 ┄─│ %254 = φ (#91 => %236, #96 => %256)::Float64 +│ │ %255 = φ (#91 => %251, #96 => %262)::Int64 +│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:16 within `macro expansion` +│ │┌ @ float.jl:409 within `+` +│ ││ %256 = Base.add_float(%254, 2.0)::Float64 +│ │└ +│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:17 within `macro expansion` +│ │┌ @ range.jl:901 within `iterate` +│ ││┌ @ promotion.jl:521 within `==` +│ │││ %257 = (%255 === %243)::Bool +│ ││└ +└────││ goto #94 if not %257 +93 ──││ goto #95 + ││ @ range.jl:902 within `iterate` + ││┌ @ int.jl:87 within `+` +94 ──│││ %260 = Base.add_int(%255, 1)::Int64 +└────│││ goto #95 + │└└ +95 ┄─│ %262 = φ (#94 => %260)::Int64 +│ │ %263 = φ (#93 => true, #94 => false)::Bool +│ │ %264 = Base.not_int(%263)::Bool +└────│ goto #97 if not %264 +96 ──│ goto #92 + │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:18 within `macro expansion` +97 ┄─│ %267 = φ (#95 => %256, #91 => %236)::Float64 +│ │┌ @ range.jl:901 within `iterate` +│ ││┌ @ promotion.jl:521 within `==` +│ │││ %268 = (%235 === %224)::Bool +│ ││└ +└────││ goto #99 if not %268 +98 ──││ goto #100 + ││ @ range.jl:902 within `iterate` + ││┌ @ int.jl:87 within `+` +99 ──│││ %271 = Base.add_int(%235, 1)::Int64 +└────│││ goto #100 + │└└ +100 ┄│ %273 = φ (#99 => %271)::Int64 +│ │ %274 = φ (#98 => true, #99 => false)::Bool +│ │ %275 = Base.not_int(%274)::Bool +└────│ goto #102 if not %275 +101 ─│ goto #83 + │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:19 within `macro expansion` +102 ┄│ %278 = φ (#100 => %267, #82 => 0.0)::Float64 +│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:88 within `#setindex!` +└────││ goto #107 if not false + ││┌ @ abstractarray.jl:700 within `checkbounds` +103 ─│││ %280 = Core.tuple(%194)::Tuple{Int64} +│ │││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ │││┌ @ abstractarray.jl:388 within `eachindex` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:69 within `length` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %281 = Base.getfield(tensor, :len)::Int64 +│ ││││└└ +│ ││││┌ @ range.jl:469 within `oneto` +│ │││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││┌ @ promotion.jl:532 within `max` +│ │││││││┌ @ int.jl:83 within `<` +│ ││││││││ %282 = Base.slt_int(%281, 0)::Bool +│ │││││││└ +│ │││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││ %283 = Core.ifelse(%282, 0, %281)::Int64 +│ │││└└└└└ +│ │││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││┌ @ int.jl:86 within `-` +│ │││││ %284 = Base.sub_int(%194, 1)::Int64 +│ ││││└ +│ ││││┌ @ essentials.jl:524 within `unsigned` +│ │││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││ %285 = Base.bitcast(UInt64, %284)::UInt64 +│ ││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││ %286 = Base.bitcast(UInt64, %283)::UInt64 +│ ││││└└ +│ ││││┌ @ int.jl:513 within `<` +│ │││││ %287 = Base.ult_int(%285, %286)::Bool +│ │││└└ +│ │││ @ abstractarray.jl:702 within `checkbounds` +└────│││ goto #105 if not %287 +104 ─│││ goto #106 +105 ─│││ invoke Base.throw_boundserror(tensor::ROCDeviceArray{Float64, 3, 1}, %280::Tuple{Int64})::Union{} +└────│││ unreachable +106 ─│││ nothing::Nothing + ││└ + ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:90 within `#setindex!` + ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:63 within `pointer` + │││┌ @ Base.jl:37 within `getproperty` +107 ┄││││ %293 = Base.getfield(tensor, :ptr)::Core.LLVMPtr{Float64, 1} +│ ││└└ +│ ││┌ @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/pointer.jl:88 within `unsafe_store!` +│ │││┌ @ none within `pointerset` +│ ││││┌ @ none within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││ %294 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine void @entry(i8 addrspace(1)* %0, double %1, i64 %2) #0 {\nentry:\n %3 = bitcast i8 addrspace(1)* %0 to double addrspace(1)*\n %4 = getelementptr inbounds double, double addrspace(1)* %3, i64 %2\n store double %1, double addrspace(1)* %4, align 8, !tbaa !0\n ret void\n}\n\nattributes #0 = { alwaysinline }\n\n!0 = !{!1, !1, i64 0, i64 0}\n!1 = !{!\"custom_tbaa_addrspace(1)\", !2, i64 0}\n!2 = !{!\"custom_tbaa\"}\n", "entry")::Tuple{String, String} +│ │││││┌ @ int.jl:86 within `-` +│ ││││││ %295 = Base.sub_int(%194, 1)::Int64 +│ │││││└ +│ │││││ Base.llvmcall(%294, Nothing, Tuple{Core.LLVMPtr{Float64, 1}, Float64, Int64}, %293, %278, %295)::Nothing +│ ││└└└ +│ ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:91 within `#setindex!` +└────││ goto #108 +108 ─││ nothing::Nothing + └└ + @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:97 within `gpu_kernel_xx!` +109 ┄ return Main.nothing +) => Nothing diff --git a/devcode_linear/gpu_kernel_xx!_1.unopt.ll b/devcode_linear/gpu_kernel_xx!_1.unopt.ll new file mode 100644 index 000000000..ddb8e45cb --- /dev/null +++ b/devcode_linear/gpu_kernel_xx!_1.unopt.ll @@ -0,0 +1,440 @@ +; ModuleID = 'start' +source_filename = "start" +target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7-ni:10:11:12:13" +target triple = "amdgcn-amd-amdhsa" + +declare {}*** @julia.get_pgcstack() local_unnamed_addr + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.x() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.y() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.z() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.x() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.y() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.z() #0 + +define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #1 { +conversion: + %5 = alloca { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, align 8, addrspace(5) + %6 = addrspacecast { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(5)* %5 to { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* + store { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, align 8 + %7 = alloca { [3 x i64], i8 addrspace(1)*, i64 }, align 8, addrspace(5) + %8 = addrspacecast { [3 x i64], i8 addrspace(1)*, i64 } addrspace(5)* %7 to { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* + store { [3 x i64], i8 addrspace(1)*, i64 } %1, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, align 8 + br label %top + +top: ; preds = %conversion + %9 = alloca [1 x i64], align 8, addrspace(5) + %10 = alloca [1 x i64], align 8, addrspace(5) + %11 = alloca [1 x i64], align 8, addrspace(5) + %12 = alloca [1 x i64], align 8, addrspace(5) + %13 = alloca [1 x [1 x [1 x i64]]], align 8, addrspace(5) + %14 = alloca [1 x i64], align 8, addrspace(5) + %15 = alloca [1 x i64], align 8, addrspace(5) + %16 = call {}*** @julia.get_pgcstack() + %17 = bitcast {}*** %16 to {}** + %current_task = getelementptr inbounds {}*, {}** %17, i64 -14 + %18 = bitcast {}** %current_task to i64* + %world_age = getelementptr inbounds i64, i64* %18, i64 15 + %19 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 + %20 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 + %21 = add i32 %20, 1 + %22 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 + %23 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 + %24 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 + %25 = add i32 %24, 1 + %26 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 + %27 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 + %28 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %19, i32 0, i32 0 + %29 = zext i32 %21 to i64 + br label %L34 + +L34: ; preds = %top + %30 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %28, i32 0, i32 0 + %31 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %30, i32 0, i32 0 + br label %L45 + +L45: ; preds = %L34 + br label %L46 + +L46: ; preds = %L45 + br label %L47 + +L47: ; preds = %L46 + br label %L48 + +L48: ; preds = %L47 + br label %L49 + +L49: ; preds = %L48 + br label %L50 + +L50: ; preds = %L49 + br label %L51 + +L51: ; preds = %L50 + %32 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %19, i32 0, i32 1 + %33 = zext i32 %25 to i64 + br label %L69 + +L69: ; preds = %L51 + %34 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %32, i32 0, i32 0 + %35 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %34, i32 0, i32 0 + br label %L80 + +L80: ; preds = %L69 + br label %L81 + +L81: ; preds = %L80 + br label %L82 + +L82: ; preds = %L81 + br label %L83 + +L83: ; preds = %L82 + br label %L84 + +L84: ; preds = %L83 + br label %L85 + +L85: ; preds = %L84 + br label %L86 + +L86: ; preds = %L85 + %36 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %19, i32 0, i32 1 + %37 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %36, i32 0, i32 0 + %38 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %37, i32 0, i32 0 + %39 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %38, i32 0, i32 0 + %40 = sub i64 %29, 1 + %41 = load i64, i64 addrspace(11)* %39, align 8, !alias.scope !9, !noalias !12 + %42 = mul i64 %40, %41 + %43 = add i64 %42, %33 + br label %L94 + +L94: ; preds = %L86 + %44 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 + %45 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %44, i32 0, i32 0 + %46 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %45, i32 0, i32 0 + %47 = icmp sle i64 1, %43 + %48 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %46, i32 0, i32 0 + %49 = load i64, i64 addrspace(11)* %48, align 8, !alias.scope !9, !noalias !12 + %50 = icmp sle i64 %43, %49 + %51 = and i1 %47, %50 + br label %L102 + +L102: ; preds = %L94 + %52 = xor i1 %51, true + br i1 %52, label %L299, label %L103 + +L103: ; preds = %L102 + %53 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 + %54 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 + %55 = add i32 %54, 1 + %56 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 + %57 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 + %58 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 + %59 = add i32 %58, 1 + %60 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 + %61 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 + %62 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %53, i32 0, i32 0 + %63 = zext i32 %55 to i64 + br label %L136 + +L136: ; preds = %L103 + %64 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %62, i32 0, i32 0 + %65 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %64, i32 0, i32 0 + br label %L147 + +L147: ; preds = %L136 + br label %L148 + +L148: ; preds = %L147 + br label %L149 + +L149: ; preds = %L148 + br label %L150 + +L150: ; preds = %L149 + br label %L151 + +L151: ; preds = %L150 + br label %L152 + +L152: ; preds = %L151 + br label %L153 + +L153: ; preds = %L152 + %66 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %53, i32 0, i32 1 + %67 = zext i32 %59 to i64 + br label %L171 + +L171: ; preds = %L153 + %68 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %66, i32 0, i32 0 + %69 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %68, i32 0, i32 0 + br label %L182 + +L182: ; preds = %L171 + br label %L183 + +L183: ; preds = %L182 + br label %L184 + +L184: ; preds = %L183 + br label %L185 + +L185: ; preds = %L184 + br label %L186 + +L186: ; preds = %L185 + br label %L187 + +L187: ; preds = %L186 + br label %L188 + +L188: ; preds = %L187 + %70 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %53, i32 0, i32 1 + %71 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %70, i32 0, i32 0 + %72 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %71, i32 0, i32 0 + %73 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %72, i32 0, i32 0 + %74 = sub i64 %63, 1 + %75 = load i64, i64 addrspace(11)* %73, align 8, !alias.scope !9, !noalias !12 + %76 = mul i64 %74, %75 + %77 = add i64 %76, %67 + br label %L196 + +L196: ; preds = %L188 + %78 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 + %79 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %78, i32 0, i32 0 + %80 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(5)* %13, i32 0, i32 0 + %81 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %79, i32 0, i32 0 + %82 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %81, i32 0, i32 0 + %83 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(5)* %80, i32 0, i32 0 + %84 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(5)* %83, i32 0, i32 0 + %85 = load i64, i64 addrspace(11)* %82, align 8, !alias.scope !9, !noalias !12 + store i64 %85, i64 addrspace(5)* %84, align 8, !tbaa !17, !alias.scope !21, !noalias !22 + br label %L214 + +L214: ; preds = %L196 + br label %L215 + +L215: ; preds = %L214 + br label %L216 + +L216: ; preds = %L215 + br label %L217 + +L217: ; preds = %L216 + br label %L218 + +L218: ; preds = %L217 + %86 = sub i64 0, %2 + %87 = icmp sle i64 %86, %2 + %88 = xor i1 %87, true + br i1 %88, label %L222, label %L221 + +L221: ; preds = %L218 + br label %L224 + +L222: ; preds = %L218 + %89 = sub i64 %86, 1 + br label %L224 + +L224: ; preds = %L222, %L221 + %value_phi = phi i64 [ %2, %L221 ], [ %89, %L222 ] + br label %L226 + +L226: ; preds = %L224 + br label %L227 + +L227: ; preds = %L226 + %90 = icmp slt i64 %value_phi, %86 + %91 = xor i1 %90, true + br i1 %91, label %L230, label %L229 + +L229: ; preds = %L227 + br label %L231 + +L230: ; preds = %L227 + br label %L231 + +L231: ; preds = %L230, %L229 + %value_phi1 = phi i8 [ 1, %L229 ], [ 0, %L230 ] + %value_phi2 = phi i64 [ %86, %L230 ], [ undef, %L229 ] + %92 = trunc i8 %value_phi1 to i1 + %93 = xor i1 %92, true + %94 = xor i1 %93, true + br i1 %94, label %L231.L278_crit_edge, label %L231.L235_crit_edge + +L231.L278_crit_edge: ; preds = %L231 + br label %L278 + +L231.L235_crit_edge: ; preds = %L231 + br label %L235 + +L235: ; preds = %L277, %L231.L235_crit_edge + %value_phi3 = phi i64 [ %value_phi2, %L231.L235_crit_edge ], [ %value_phi13, %L277 ] + %value_phi4 = phi double [ 0.000000e+00, %L231.L235_crit_edge ], [ %value_phi12, %L277 ] + %95 = sub i64 0, %3 + %96 = icmp sle i64 %95, %3 + %97 = xor i1 %96, true + br i1 %97, label %L241, label %L240 + +L240: ; preds = %L235 + br label %L243 + +L241: ; preds = %L235 + %98 = sub i64 %95, 1 + br label %L243 + +L243: ; preds = %L241, %L240 + %value_phi5 = phi i64 [ %3, %L240 ], [ %98, %L241 ] + br label %L245 + +L245: ; preds = %L243 + br label %L246 + +L246: ; preds = %L245 + %99 = icmp slt i64 %value_phi5, %95 + %100 = xor i1 %99, true + br i1 %100, label %L249, label %L248 + +L248: ; preds = %L246 + br label %L250 + +L249: ; preds = %L246 + br label %L250 + +L250: ; preds = %L249, %L248 + %value_phi6 = phi i8 [ 1, %L248 ], [ 0, %L249 ] + %value_phi7 = phi i64 [ %95, %L249 ], [ undef, %L248 ] + %101 = trunc i8 %value_phi6 to i1 + %102 = xor i1 %101, true + %103 = xor i1 %102, true + br i1 %103, label %L250.L267_crit_edge, label %L250.L254_crit_edge + +L250.L267_crit_edge: ; preds = %L250 + br label %L267 + +L250.L254_crit_edge: ; preds = %L250 + br label %L254 + +L254: ; preds = %L266, %L250.L254_crit_edge + %value_phi8 = phi double [ %value_phi4, %L250.L254_crit_edge ], [ %104, %L266 ] + %value_phi9 = phi i64 [ %value_phi7, %L250.L254_crit_edge ], [ %value_phi10, %L266 ] + %104 = fadd double %value_phi8, 2.000000e+00 + %105 = icmp eq i64 %value_phi9, %value_phi5 + %106 = xor i1 %105, true + br i1 %106, label %L260, label %L259 + +L259: ; preds = %L254 + br label %L262 + +L260: ; preds = %L254 + %107 = add i64 %value_phi9, 1 + br label %L262 + +L262: ; preds = %L260, %L259 + %value_phi10 = phi i64 [ %107, %L260 ], [ undef, %L259 ] + %value_phi11 = phi i8 [ 1, %L259 ], [ 0, %L260 ] + %108 = trunc i8 %value_phi11 to i1 + %109 = xor i1 %108, true + %110 = xor i1 %109, true + br i1 %110, label %L262.L267_crit_edge, label %L266 + +L262.L267_crit_edge: ; preds = %L262 + br label %L267 + +L266: ; preds = %L262 + br label %L254 + +L267: ; preds = %L262.L267_crit_edge, %L250.L267_crit_edge + %value_phi12 = phi double [ %104, %L262.L267_crit_edge ], [ %value_phi4, %L250.L267_crit_edge ] + %111 = icmp eq i64 %value_phi3, %value_phi + %112 = xor i1 %111, true + br i1 %112, label %L271, label %L270 + +L270: ; preds = %L267 + br label %L273 + +L271: ; preds = %L267 + %113 = add i64 %value_phi3, 1 + br label %L273 + +L273: ; preds = %L271, %L270 + %value_phi13 = phi i64 [ %113, %L271 ], [ undef, %L270 ] + %value_phi14 = phi i8 [ 1, %L270 ], [ 0, %L271 ] + %114 = trunc i8 %value_phi14 to i1 + %115 = xor i1 %114, true + %116 = xor i1 %115, true + br i1 %116, label %L273.L278_crit_edge, label %L277 + +L273.L278_crit_edge: ; preds = %L273 + br label %L278 + +L277: ; preds = %L273 + br label %L235 + +L278: ; preds = %L273.L278_crit_edge, %L231.L278_crit_edge + %value_phi15 = phi double [ %value_phi12, %L273.L278_crit_edge ], [ 0.000000e+00, %L231.L278_crit_edge ] + br label %L293 + +L293: ; preds = %L278 + %117 = getelementptr inbounds { [3 x i64], i8 addrspace(1)*, i64 }, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, i32 0, i32 1 + %118 = sub i64 %77, 1 + %119 = load i8 addrspace(1)*, i8 addrspace(1)* addrspace(11)* %117, align 8, !alias.scope !9, !noalias !12 + %120 = bitcast i8 addrspace(1)* %119 to double addrspace(1)* + %121 = getelementptr inbounds double, double addrspace(1)* %120, i64 %118 + store double %value_phi15, double addrspace(1)* %121, align 8, !tbaa !23 + br label %L298 + +L298: ; preds = %L293 + br label %L299 + +L299: ; preds = %L298, %L102 + ret void +} + +attributes #0 = { nounwind readnone speculatable willreturn } +attributes #1 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} +!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} +!julia.kernel = !{!6} + +!0 = !{i32 2, !"Dwarf Version", i32 4} +!1 = !{i32 2, !"Debug Info Version", i32 3} +!2 = !{i32 1, !"wchar_size", i32 4} +!3 = !{i32 7, !"PIC Level", i32 1} +!4 = !{i32 2, i32 0} +!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} +!6 = !{void ({ [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} +!7 = !{i32 0, i32 -2} +!8 = !{i32 0, i32 1023} +!9 = !{!10} +!10 = !{!"jnoalias_const", !11} +!11 = !{!"jnoalias"} +!12 = !{!13, !14, !15, !16} +!13 = !{!"jnoalias_gcframe", !11} +!14 = !{!"jnoalias_stack", !11} +!15 = !{!"jnoalias_data", !11} +!16 = !{!"jnoalias_typemd", !11} +!17 = !{!18, !18, i64 0} +!18 = !{!"jtbaa_stack", !19, i64 0} +!19 = !{!"jtbaa", !20, i64 0} +!20 = !{!"jtbaa"} +!21 = !{!14} +!22 = !{!13, !15, !16, !10} +!23 = !{!24, !24, i64 0, i64 0} +!24 = !{!"custom_tbaa_addrspace(1)", !25, i64 0} +!25 = !{!"custom_tbaa"} diff --git a/devcode_size/gpu_kernel_xx!_1.asm b/devcode_size/gpu_kernel_xx!_1.asm new file mode 100644 index 000000000..ce469ce82 --- /dev/null +++ b/devcode_size/gpu_kernel_xx!_1.asm @@ -0,0 +1,809 @@ + .text + .amdgcn_target "amdgcn-amd-amdhsa--gfx1100" + .globl _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ ; -- Begin function _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + .p2align 8 + .type _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_,@function +_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_: ; @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ +; %bb.0: ; %conversion + s_clause 0x1 + s_load_b64 s[4:5], s[0:1], 0x70 + s_load_b64 s[12:13], s[0:1], 0x0 + s_waitcnt lgkmcnt(0) + v_cmp_gt_i64_e64 s3, s[4:5], 0 + s_delay_alu instid0(VALU_DEP_1) + s_and_b32 vcc_lo, exec_lo, s3 + s_cbranch_vccz .LBB0_25 +; %bb.1: ; %pass + s_load_b64 s[8:9], s[0:1], 0x78 + s_mov_b32 s2, s15 + s_mov_b32 s3, 0 + v_mov_b32_e32 v2, 0 + v_cmp_lt_u64_e64 s3, s[2:3], s[4:5] + v_mov_b32_e32 v3, 0 + s_delay_alu instid0(VALU_DEP_2) + s_and_b32 vcc_lo, exec_lo, s3 + s_cbranch_vccnz .LBB0_3 +; %bb.2: + v_cvt_f32_u32_e32 v1, s4 + s_sub_i32 s6, 0, s4 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_rcp_iflag_f32_e32 v1, v1 + s_waitcnt_depctr 0xfff + v_mul_f32_e32 v1, 0x4f7ffffe, v1 + v_cvt_u32_f32_e32 v1, v1 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_readfirstlane_b32 s3, v1 + s_mul_i32 s6, s6, s3 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) + s_mul_hi_u32 s6, s3, s6 + s_add_i32 s3, s3, s6 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) + s_mul_hi_u32 s3, s2, s3 + s_mul_i32 s6, s3, s4 + s_add_i32 s7, s3, 1 + s_sub_i32 s6, s2, s6 + v_mov_b32_e32 v1, s7 + s_cmp_ge_u32 s6, s4 + s_cselect_b32 vcc_lo, -1, 0 + s_sub_i32 s7, s6, s4 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_cndmask_b32_e32 v1, s3, v1, vcc_lo + v_dual_mov_b32 v2, s7 :: v_dual_add_nc_u32 v3, 1, v1 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_cndmask_b32_e32 v2, s6, v2, vcc_lo + v_cmp_le_u32_e32 vcc_lo, s4, v2 + s_delay_alu instid0(VALU_DEP_3) + v_dual_cndmask_b32 v2, v1, v3 :: v_dual_mov_b32 v3, 0 +.LBB0_3: + s_waitcnt lgkmcnt(0) + v_cmp_gt_i64_e64 s3, s[8:9], 0 + s_delay_alu instid0(VALU_DEP_1) + s_and_b32 vcc_lo, exec_lo, s3 + s_cbranch_vccz .LBB0_26 +; %bb.4: ; %pass2 + s_load_b64 s[6:7], s[0:1], 0x88 + v_cndmask_b32_e64 v7, 0, s9, s3 + v_cndmask_b32_e64 v6, 0, s8, s3 + v_mov_b32_e32 v8, 0 + v_mov_b32_e32 v9, 0 + s_delay_alu instid0(VALU_DEP_3) + v_cmp_lt_u64_e32 vcc_lo, v[2:3], v[6:7] + s_cbranch_vccnz .LBB0_6 +; %bb.5: + v_cvt_f32_u32_e32 v1, v6 + v_sub_nc_u32_e32 v4, 0, v6 + s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_rcp_iflag_f32_e32 v1, v1 + s_waitcnt_depctr 0xfff + v_mul_f32_e32 v1, 0x4f7ffffe, v1 + v_cvt_u32_f32_e32 v1, v1 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_mul_lo_u32 v4, v4, v1 + v_mul_hi_u32 v4, v1, v4 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_nc_u32_e32 v1, v1, v4 + v_mul_hi_u32 v1, v2, v1 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_mul_lo_u32 v4, v1, v6 + v_add_nc_u32_e32 v5, 1, v1 + v_sub_nc_u32_e32 v4, v2, v4 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3) + v_cmp_ge_u32_e32 vcc_lo, v4, v6 + v_cndmask_b32_e32 v1, v1, v5, vcc_lo + v_sub_nc_u32_e32 v5, v4, v6 + s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) + v_readfirstlane_b32 s3, v1 + v_cndmask_b32_e32 v1, v4, v5, vcc_lo + s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) + s_add_i32 s10, s3, 1 + v_readfirstlane_b32 s11, v1 + v_mov_b32_e32 v1, s10 + s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) + v_cmp_ge_u32_e32 vcc_lo, s11, v6 + v_cndmask_b32_e32 v8, s3, v1, vcc_lo +.LBB0_6: + s_waitcnt lgkmcnt(0) + v_cmp_gt_i64_e64 s3, s[6:7], 0 + s_delay_alu instid0(VALU_DEP_1) + s_and_b32 vcc_lo, exec_lo, s3 + s_cbranch_vccz .LBB0_27 +; %bb.7: ; %pass4 + s_load_b64 s[10:11], s[0:1], 0x90 + s_waitcnt lgkmcnt(0) + v_cmp_gt_i64_e64 s3, s[10:11], 0 + s_delay_alu instid0(VALU_DEP_1) + s_and_b32 vcc_lo, exec_lo, s3 + s_cbranch_vccz .LBB0_28 +; %bb.8: ; %pass6 + s_load_b64 s[12:13], s[0:1], 0x98 + v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v4, 0 + v_mov_b32_e32 v5, 0 + s_mov_b32 s3, exec_lo + s_delay_alu instid0(VALU_DEP_2) + v_cmpx_le_u64_e64 s[6:7], v[0:1] + s_cbranch_execz .LBB0_10 +; %bb.9: + v_cvt_f32_u32_e32 v4, s6 + s_sub_i32 s14, 0, s6 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_rcp_iflag_f32_e32 v4, v4 + s_waitcnt_depctr 0xfff + v_mul_f32_e32 v4, 0x4f7ffffe, v4 + v_cvt_u32_f32_e32 v4, v4 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_mul_lo_u32 v5, s14, v4 + v_mul_hi_u32 v5, v4, v5 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_nc_u32_e32 v4, v4, v5 + v_mul_hi_u32 v4, v0, v4 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_mul_lo_u32 v5, v4, s6 + v_add_nc_u32_e32 v9, 1, v4 + v_sub_nc_u32_e32 v5, v0, v5 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_subrev_nc_u32_e32 v10, s6, v5 + v_cmp_le_u32_e32 vcc_lo, s6, v5 + v_dual_cndmask_b32 v5, v5, v10 :: v_dual_cndmask_b32 v4, v4, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_3) + v_cmp_le_u32_e32 vcc_lo, s6, v5 + v_mov_b32_e32 v5, 0 + v_add_nc_u32_e32 v9, 1, v4 + s_delay_alu instid0(VALU_DEP_1) + v_cndmask_b32_e32 v4, v4, v9, vcc_lo +.LBB0_10: + s_or_b32 exec_lo, exec_lo, s3 + s_clause 0x2 + s_load_b64 s[18:19], s[0:1], 0x68 + s_load_b64 s[16:17], s[0:1], 0x60 + s_load_b64 s[14:15], s[0:1], 0x58 + v_cmp_gt_i64_e64 s3, s[10:11], 0 + v_mov_b32_e32 v9, 0 + v_mov_b32_e32 v10, 0 + s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_cndmask_b32_e64 v12, 0, s11, s3 + v_cndmask_b32_e64 v11, 0, s10, s3 + s_mov_b32 s3, exec_lo + v_cmpx_ge_u64_e64 v[4:5], v[11:12] + s_cbranch_execz .LBB0_12 +; %bb.11: + v_cvt_f32_u32_e32 v9, v11 + v_sub_nc_u32_e32 v10, 0, v11 + s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_rcp_iflag_f32_e32 v9, v9 + s_waitcnt_depctr 0xfff + v_mul_f32_e32 v9, 0x4f7ffffe, v9 + v_cvt_u32_f32_e32 v9, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_mul_lo_u32 v10, v10, v9 + v_mul_hi_u32 v10, v9, v10 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_nc_u32_e32 v9, v9, v10 + v_mul_hi_u32 v9, v4, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_mul_lo_u32 v10, v9, v11 + v_add_nc_u32_e32 v13, 1, v9 + v_sub_nc_u32_e32 v10, v4, v10 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_sub_nc_u32_e32 v14, v10, v11 + v_cmp_ge_u32_e32 vcc_lo, v10, v11 + v_dual_cndmask_b32 v10, v10, v14 :: v_dual_cndmask_b32 v9, v9, v13 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) + v_cmp_ge_u32_e32 vcc_lo, v10, v11 + v_dual_mov_b32 v10, 0 :: v_dual_add_nc_u32 v13, 1, v9 + s_delay_alu instid0(VALU_DEP_1) + v_cndmask_b32_e32 v9, v9, v13, vcc_lo +.LBB0_12: + s_or_b32 exec_lo, exec_lo, s3 + v_mad_u64_u32 v[13:14], null, v2, s4, v[4:5] + v_mul_lo_u32 v7, v8, v7 + v_mul_hi_u32 v17, v8, v6 + v_mad_u64_u32 v[15:16], null, v9, v11, 0 + v_mul_lo_u32 v11, v8, v6 + s_waitcnt lgkmcnt(0) + v_mul_hi_u32 v20, v8, s12 + s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3) + v_dual_mov_b32 v6, v14 :: v_dual_add_nc_u32 v7, v17, v7 + v_sub_co_u32 v11, vcc_lo, v2, v11 + s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_2) + v_mad_u64_u32 v[17:18], null, v2, s5, v[6:7] + v_mov_b32_e32 v6, v16 + v_sub_co_ci_u32_e32 v14, vcc_lo, v3, v7, vcc_lo + v_mad_u64_u32 v[18:19], null, v9, v12, v[6:7] + s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_3) | instid1(VALU_DEP_4) + v_mov_b32_e32 v6, v17 + v_sub_co_u32 v12, vcc_lo, s2, v13 + v_mul_lo_u32 v13, v11, s11 + v_mul_hi_u32 v17, v11, s10 + v_sub_co_ci_u32_e32 v16, vcc_lo, 0, v6, vcc_lo + s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3) + v_mul_lo_u32 v19, v12, s7 + v_mad_u64_u32 v[6:7], null, v12, s6, 0 + v_mul_lo_u32 v12, v16, s6 + v_mul_lo_u32 v14, v14, s10 + v_add_nc_u32_e32 v13, v17, v13 + v_mul_lo_u32 v11, v11, s10 + v_mul_lo_u32 v16, v8, s13 + v_mul_lo_u32 v17, v8, s12 + v_mov_b32_e32 v8, v18 + v_add3_u32 v7, v7, v19, v12 + v_add_nc_u32_e32 v12, v13, v14 + v_add_co_u32 v13, vcc_lo, v0, v6 + s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_4) + v_add_co_ci_u32_e32 v14, vcc_lo, 0, v7, vcc_lo + v_add_co_u32 v18, vcc_lo, v11, 1 + v_add_co_ci_u32_e32 v19, vcc_lo, 0, v12, vcc_lo + s_delay_alu instid0(VALU_DEP_4) + v_add_co_u32 v11, vcc_lo, v13, 1 + v_add_nc_u32_e32 v13, v20, v16 + v_add_co_ci_u32_e32 v12, vcc_lo, 0, v14, vcc_lo + v_add_co_u32 v14, vcc_lo, v18, v4 + v_add_co_ci_u32_e32 v16, vcc_lo, v19, v5, vcc_lo + v_add_co_u32 v17, vcc_lo, v17, 1 + v_add_co_ci_u32_e32 v18, vcc_lo, 0, v13, vcc_lo + s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) + v_sub_co_u32 v13, vcc_lo, v14, v15 + v_sub_co_ci_u32_e32 v14, vcc_lo, v16, v8, vcc_lo + s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) + v_add_co_u32 v8, vcc_lo, v17, v9 + v_add_co_ci_u32_e32 v9, vcc_lo, v18, v10, vcc_lo + v_cmp_lt_i64_e32 vcc_lo, 0, v[11:12] + v_cmp_ge_i64_e64 s2, s[14:15], v[11:12] + v_cmp_lt_i64_e64 s3, 0, v[13:14] + v_cmp_ge_i64_e64 s4, s[16:17], v[13:14] + v_cmp_lt_i64_e64 s5, 0, v[8:9] + v_cmp_ge_i64_e64 s6, s[18:19], v[8:9] + s_and_b32 s2, vcc_lo, s2 + s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) + s_and_b32 s3, s3, s4 + s_and_b32 s4, s5, s6 + s_and_b32 s2, s2, s3 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) + s_and_b32 s2, s4, s2 + s_and_b32 exec_lo, exec_lo, s2 + s_cbranch_execz .LBB0_24 +; %bb.13: ; %pass10 + v_cmp_gt_u64_e32 vcc_lo, s[8:9], v[2:3] + v_mov_b32_e32 v8, 0 + v_mov_b32_e32 v9, 0 + s_cbranch_vccnz .LBB0_15 +; %bb.14: + v_cvt_f32_u32_e32 v8, s8 + s_sub_i32 s2, 0, s8 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_rcp_iflag_f32_e32 v8, v8 + s_waitcnt_depctr 0xfff + v_mul_f32_e32 v8, 0x4f7ffffe, v8 + v_cvt_u32_f32_e32 v8, v8 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_mul_lo_u32 v9, s2, v8 + v_mul_hi_u32 v9, v8, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_nc_u32_e32 v8, v8, v9 + v_mul_hi_u32 v8, v2, v8 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_mul_lo_u32 v9, v8, s8 + v_add_nc_u32_e32 v10, 1, v8 + v_sub_nc_u32_e32 v9, v2, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_subrev_nc_u32_e32 v11, s8, v9 + v_cmp_le_u32_e32 vcc_lo, s8, v9 + v_dual_cndmask_b32 v9, v9, v11 :: v_dual_cndmask_b32 v8, v8, v10 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) + v_cmp_le_u32_e32 vcc_lo, s8, v9 + v_add_nc_u32_e32 v10, 1, v8 + s_delay_alu instid0(VALU_DEP_1) + v_cndmask_b32_e32 v8, v8, v10, vcc_lo +.LBB0_15: + s_load_b128 s[4:7], s[0:1], 0xc8 + v_mov_b32_e32 v9, 0 + v_mov_b32_e32 v10, 0 + s_mov_b32 s2, exec_lo + v_cmpx_le_u64_e64 s[10:11], v[4:5] + s_cbranch_execz .LBB0_17 +; %bb.16: + v_cvt_f32_u32_e32 v9, s10 + s_sub_i32 s3, 0, s10 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) + v_rcp_iflag_f32_e32 v9, v9 + s_waitcnt_depctr 0xfff + v_mul_f32_e32 v9, 0x4f7ffffe, v9 + v_cvt_u32_f32_e32 v9, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_mul_lo_u32 v10, s3, v9 + v_mul_hi_u32 v10, v9, v10 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_add_nc_u32_e32 v9, v9, v10 + v_mul_hi_u32 v9, v4, v9 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_mul_lo_u32 v10, v9, s10 + v_add_nc_u32_e32 v11, 1, v9 + v_sub_nc_u32_e32 v10, v4, v10 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) + v_subrev_nc_u32_e32 v12, s10, v10 + v_cmp_le_u32_e32 vcc_lo, s10, v10 + v_dual_cndmask_b32 v10, v10, v12 :: v_dual_cndmask_b32 v9, v9, v11 + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) + v_cmp_le_u32_e32 vcc_lo, s10, v10 + v_dual_mov_b32 v10, 0 :: v_dual_add_nc_u32 v11, 1, v9 + s_delay_alu instid0(VALU_DEP_1) + v_cndmask_b32_e32 v9, v9, v11, vcc_lo +.LBB0_17: + s_or_b32 exec_lo, exec_lo, s2 + s_waitcnt lgkmcnt(0) + s_sub_u32 s2, 0, s4 + s_subb_u32 s3, 0, s5 + s_load_b64 s[0:1], s[0:1], 0xb8 + v_cmp_gt_i64_e64 s18, s[2:3], s[4:5] + s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_cndmask_b32_e64 v11, 0, -1, s18 + v_xor_b32_e32 v13, s4, v11 + v_xor_b32_e32 v14, s5, v11 + v_mov_b32_e32 v11, 0 + v_mov_b32_e32 v12, 0 + s_delay_alu instid0(VALU_DEP_3) + v_cmp_gt_i64_e32 vcc_lo, s[2:3], v[13:14] + s_cbranch_vccnz .LBB0_23 +; %bb.18: ; %L674.preheader + s_sub_u32 s4, 0, s6 + s_subb_u32 s5, 0, s7 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1) + v_cmp_gt_i64_e64 s18, s[4:5], s[6:7] + v_cndmask_b32_e64 v11, 0, -1, s18 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3) + v_readfirstlane_b32 s18, v11 + v_mov_b32_e32 v11, 0 + v_mov_b32_e32 v12, 0 + s_mov_b32 s19, s18 + s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) + s_xor_b64 s[18:19], s[18:19], s[6:7] + s_add_u32 s20, s18, s6 + v_cmp_ge_i64_e64 s6, s[18:19], s[4:5] + s_addc_u32 s5, s19, s7 + s_add_u32 s4, s20, 1 + s_addc_u32 s5, s5, 0 + s_branch .LBB0_20 +.LBB0_19: ; %L706 + ; in Loop: Header=BB0_20 Depth=1 + v_cmp_ne_u64_e32 vcc_lo, s[2:3], v[13:14] + s_add_u32 s2, s2, 1 + s_addc_u32 s3, s3, 0 + s_cbranch_vccz .LBB0_23 +.LBB0_20: ; %L674 + ; =>This Loop Header: Depth=1 + ; Child Loop BB0_22 Depth 2 + s_delay_alu instid0(VALU_DEP_1) + s_and_not1_b32 vcc_lo, exec_lo, s6 + s_cbranch_vccnz .LBB0_19 +; %bb.21: ; %L693.preheader + ; in Loop: Header=BB0_20 Depth=1 + s_mov_b64 s[6:7], s[4:5] +.LBB0_22: ; %L693 + ; Parent Loop BB0_20 Depth=1 + ; => This Inner Loop Header: Depth=2 + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) + v_add_f64 v[11:12], v[11:12], 2.0 + s_add_u32 s6, s6, -1 + s_addc_u32 s7, s7, -1 + s_cmp_lg_u64 s[6:7], 0 + s_cbranch_scc1 .LBB0_22 + s_branch .LBB0_19 +.LBB0_23: ; %L732 + v_mad_u64_u32 v[13:14], null, v8, s8, v[9:10] + v_mad_u64_u32 v[15:16], null, v8, s12, v[9:10] + v_cmp_gt_i64_e64 s2, s[16:17], 0 + s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_4) + v_mov_b32_e32 v9, v14 + v_sub_co_u32 v13, vcc_lo, v2, v13 + s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) + v_mov_b32_e32 v10, v16 + v_cndmask_b32_e64 v14, 0, s16, s2 + s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_4) + v_mad_u64_u32 v[16:17], null, v8, s9, v[9:10] + v_mad_u64_u32 v[17:18], null, v8, s13, v[10:11] + v_cndmask_b32_e64 v10, 0, s17, s2 + v_mad_u64_u32 v[8:9], null, v15, v14, v[4:5] + v_cmp_gt_i64_e64 s2, s[14:15], 0 + v_mov_b32_e32 v4, v16 + s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3) + v_mul_lo_u32 v5, v15, v10 + v_mul_lo_u32 v10, v17, v14 + v_sub_co_ci_u32_e32 v2, vcc_lo, v3, v4, vcc_lo + v_mul_lo_u32 v4, v13, s11 + s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3) + v_add3_u32 v9, v10, v9, v5 + v_mul_lo_u32 v5, v2, s10 + s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_3) + v_mad_u64_u32 v[2:3], null, v13, s10, v[8:9] + v_cndmask_b32_e64 v8, 0, s14, s2 + v_cndmask_b32_e64 v9, 0, s15, s2 + v_add3_u32 v5, v5, v3, v4 + s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_4) + v_mul_lo_u32 v9, v2, v9 + v_mad_u64_u32 v[3:4], null, v2, v8, v[0:1] + s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) + v_mul_lo_u32 v0, v5, v8 + v_add3_u32 v1, v0, v4, v9 + s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2) + v_add_co_u32 v0, vcc_lo, v3, v6 + v_add_co_ci_u32_e32 v1, vcc_lo, v1, v7, vcc_lo + s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1) + v_lshlrev_b64 v[0:1], 3, v[0:1] + s_waitcnt lgkmcnt(0) + v_add_co_u32 v0, vcc_lo, s0, v0 + s_delay_alu instid0(VALU_DEP_2) + v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo + global_store_b64 v[0:1], v[11:12], off +.LBB0_24: ; %Flow13 + s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) + s_endpgm +.LBB0_25: ; %fail + v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 + v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 + s_clause 0x3 + flat_store_b8 v[0:1], v2 offset:3 + flat_store_b8 v[0:1], v2 offset:2 + flat_store_b8 v[0:1], v2 offset:1 + flat_store_b8 v[0:1], v3 + s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) + s_endpgm +.LBB0_26: ; %fail1 + v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 + v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 + s_clause 0x3 + flat_store_b8 v[0:1], v2 offset:3 + flat_store_b8 v[0:1], v2 offset:2 + flat_store_b8 v[0:1], v2 offset:1 + flat_store_b8 v[0:1], v3 + s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) + s_endpgm +.LBB0_27: ; %fail3 + v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 + v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 + s_clause 0x3 + flat_store_b8 v[0:1], v2 offset:3 + flat_store_b8 v[0:1], v2 offset:2 + flat_store_b8 v[0:1], v2 offset:1 + flat_store_b8 v[0:1], v3 + s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) + s_endpgm +.LBB0_28: ; %fail5 + v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 + v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 + s_clause 0x3 + flat_store_b8 v[0:1], v2 offset:3 + flat_store_b8 v[0:1], v2 offset:2 + flat_store_b8 v[0:1], v2 offset:1 + flat_store_b8 v[0:1], v3 + s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) + s_endpgm + .section .rodata,#alloc + .p2align 6 + .amdhsa_kernel _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + .amdhsa_group_segment_fixed_size 0 + .amdhsa_private_segment_fixed_size 0 + .amdhsa_kernarg_size 224 + .amdhsa_user_sgpr_count 15 + .amdhsa_user_sgpr_dispatch_ptr 0 + .amdhsa_user_sgpr_queue_ptr 0 + .amdhsa_user_sgpr_kernarg_segment_ptr 1 + .amdhsa_user_sgpr_dispatch_id 0 + .amdhsa_user_sgpr_private_segment_size 0 + .amdhsa_wavefront_size32 1 + .amdhsa_uses_dynamic_stack 0 + .amdhsa_enable_private_segment 0 + .amdhsa_system_sgpr_workgroup_id_x 1 + .amdhsa_system_sgpr_workgroup_id_y 0 + .amdhsa_system_sgpr_workgroup_id_z 0 + .amdhsa_system_sgpr_workgroup_info 0 + .amdhsa_system_vgpr_workitem_id 0 + .amdhsa_next_free_vgpr 21 + .amdhsa_next_free_sgpr 21 + .amdhsa_float_round_mode_32 0 + .amdhsa_float_round_mode_16_64 0 + .amdhsa_float_denorm_mode_32 3 + .amdhsa_float_denorm_mode_16_64 3 + .amdhsa_dx10_clamp 1 + .amdhsa_ieee_mode 1 + .amdhsa_fp16_overflow 0 + .amdhsa_workgroup_processor_mode 1 + .amdhsa_memory_ordered 1 + .amdhsa_forward_progress 0 + .amdhsa_shared_vgpr_count 0 + .amdhsa_exception_fp_ieee_invalid_op 0 + .amdhsa_exception_fp_denorm_src 0 + .amdhsa_exception_fp_ieee_div_zero 0 + .amdhsa_exception_fp_ieee_overflow 0 + .amdhsa_exception_fp_ieee_underflow 0 + .amdhsa_exception_fp_ieee_inexact 0 + .amdhsa_exception_int_div_zero 0 + .end_amdhsa_kernel + .text +.Lfunc_end0: + .size _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_, .Lfunc_end0-_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + ; -- End function + .section .AMDGPU.csdata +; Kernel info: +; codeLenInByte = 2484 +; NumSgprs: 23 +; NumVgprs: 21 +; ScratchSize: 0 +; MemoryBound: 0 +; FloatMode: 240 +; IeeeMode: 1 +; LDSByteSize: 0 bytes/workgroup (compile time only) +; SGPRBlocks: 2 +; VGPRBlocks: 2 +; NumSGPRsForWavesPerEU: 23 +; NumVGPRsForWavesPerEU: 21 +; Occupancy: 16 +; WaveLimiterHint : 0 +; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0 +; COMPUTE_PGM_RSRC2:USER_SGPR: 15 +; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0 +; COMPUTE_PGM_RSRC2:TGID_X_EN: 1 +; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0 +; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0 +; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0 + .text + .p2alignl 7, 3214868480 + .fill 96, 4, 3214868480 + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" + .section ".note.GNU-stack" + .amdgpu_metadata +--- +amdhsa.kernels: + - .args: + - .name: state + .offset: 0 + .size: 88 + .value_kind: by_value + - .offset: 88 + .size: 72 + .value_kind: by_value + - .offset: 160 + .size: 40 + .value_kind: by_value + - .offset: 200 + .size: 8 + .value_kind: by_value + - .offset: 208 + .size: 8 + .value_kind: by_value + - .offset: 216 + .size: 8 + .value_kind: by_value + .group_segment_fixed_size: 0 + .kernarg_segment_align: 8 + .kernarg_segment_size: 224 + .language: OpenCL C + .language_version: + - 2 + - 0 + .max_flat_workgroup_size: 1024 + .name: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ + .private_segment_fixed_size: 0 + .sgpr_count: 23 + .sgpr_spill_count: 0 + .symbol: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_.kd + .uses_dynamic_stack: false + .vgpr_count: 21 + .vgpr_spill_count: 0 + .wavefront_size: 32 +amdhsa.target: amdgcn-amd-amdhsa--gfx1100 +amdhsa.version: + - 1 + - 1 +... + + .end_amdgpu_metadata diff --git a/devcode_size/gpu_kernel_xx!_1.lowered.jl b/devcode_size/gpu_kernel_xx!_1.lowered.jl new file mode 100644 index 000000000..9f3566772 --- /dev/null +++ b/devcode_size/gpu_kernel_xx!_1.lowered.jl @@ -0,0 +1,46 @@ +CodeInfo( +1 ─ Core.NewvarNode(:(val)) +│ Core.NewvarNode(:(@_8)) +│ Core.NewvarNode(:(res)) +│ Core.NewvarNode(:(idx)) +│ %5 = (KernelAbstractions.__validindex)(__ctx__) +└── goto #9 if not %5 +2 ─ idx = KernelAbstractions.__index_Global_Linear(__ctx__) +│ %8 = Main.eltype(tensor) +│ res = Main.zero(%8) +│ %10 = -Nx +│ %11 = %10:Nx +│ @_8 = Base.iterate(%11) +│ %13 = @_8 === nothing +│ %14 = Base.not_int(%13) +└── goto #8 if not %14 +3 ┄ %16 = @_8 +│ p = Core.getfield(%16, 1) +│ %18 = Core.getfield(%16, 2) +│ %19 = -Ny +│ %20 = %19:Ny +│ @_11 = Base.iterate(%20) +│ %22 = @_11 === nothing +│ %23 = Base.not_int(%22) +└── goto #6 if not %23 +4 ┄ %25 = @_11 +│ q = Core.getfield(%25, 1) +│ %27 = Core.getfield(%25, 2) +│ res = res + 2.0 +│ @_11 = Base.iterate(%20, %27) +│ %30 = @_11 === nothing +│ %31 = Base.not_int(%30) +└── goto #6 if not %31 +5 ─ goto #4 +6 ┄ @_8 = Base.iterate(%11, %18) +│ %35 = @_8 === nothing +│ %36 = Base.not_int(%35) +└── goto #8 if not %36 +7 ─ goto #3 +8 ┄ nothing +│ Base.setindex!(tensor, res, idx) +│ val = res +│ nothing +└── val +9 ┄ return Main.nothing +) diff --git a/devcode_size/gpu_kernel_xx!_1.opt.ll b/devcode_size/gpu_kernel_xx!_1.opt.ll new file mode 100644 index 000000000..e08614983 --- /dev/null +++ b/devcode_size/gpu_kernel_xx!_1.opt.ll @@ -0,0 +1,195 @@ +; ModuleID = 'start' +source_filename = "start" +target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:10:11:12:13" +target triple = "amdgcn-amd-amdhsa" + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.x() #0 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.x() #0 + +; Function Attrs: cold noreturn nounwind +declare void @llvm.amdgcn.endpgm() #1 + +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare i64 @llvm.smax.i64(i64, i64) #2 + +define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #3 { +conversion: + %.fca.0.0.0.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 0, 0, 0, 0 + %.fca.0.0.1.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 0, 0, 1, 0 + %.fca.0.0.2.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 0, 0, 2, 0 + %.fca.1.0.0.0.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 0, 0, 0, 0 + %.fca.1.0.0.1.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 0, 0, 1, 0 + %.fca.1.1.0.0.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 1, 0, 0, 0 + %.fca.1.1.0.1.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 1, 0, 1, 0 + %.fca.1.1.0.2.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 1, 0, 2, 0 + %.fca.1.extract = extractvalue { [3 x i64], i8 addrspace(1)*, i64 } %1, 1 + %5 = call i32 @llvm.amdgcn.workitem.id.x(), !range !7 + %6 = call i64 @llvm.smax.i64(i64 %.fca.1.0.0.1.0.extract, i64 0) + %7 = icmp sgt i64 %.fca.1.0.0.0.0.extract, 0 + br i1 %7, label %pass, label %fail + +L674: ; preds = %L674.preheader, %L706 + %value_phi17 = phi i64 [ %10, %L706 ], [ %65, %L674.preheader ] + %value_phi18 = phi double [ %value_phi26, %L706 ], [ 0.000000e+00, %L674.preheader ] + br i1 %.not127.not, label %L706, label %L693 + +L693: ; preds = %L693, %L674 + %value_phi22 = phi double [ %8, %L693 ], [ %value_phi18, %L674 ] + %value_phi23 = phi i64 [ %9, %L693 ], [ %67, %L674 ] + %8 = fadd double %value_phi22, 2.000000e+00 + %.not128 = icmp eq i64 %value_phi23, %value_phi19 + %9 = add i64 %value_phi23, 1 + br i1 %.not128, label %L706, label %L693 + +L706: ; preds = %L693, %L674 + %value_phi26 = phi double [ %value_phi18, %L674 ], [ %8, %L693 ] + %.not129 = icmp eq i64 %value_phi17, %value_phi + %10 = add i64 %value_phi17, 1 + br i1 %.not129, label %L732, label %L674 + +L732: ; preds = %pass10, %L706 + %value_phi29 = phi double [ 0.000000e+00, %pass10 ], [ %value_phi26, %L706 ] + %11 = add i64 %64, %32 + %reass.add137 = add i64 %11, %reass.mul135 + %reass.mul138 = mul i64 %reass.add137, %60 + %12 = add i64 %reass.mul138, %31 + %13 = add i64 %12, %reass.mul + %14 = bitcast i8 addrspace(1)* %.fca.1.extract to double addrspace(1)* + %15 = getelementptr inbounds double, double addrspace(1)* %14, i64 %13 + store double %value_phi29, double addrspace(1)* %15, align 8, !tbaa !8 + br label %L738 + +L738: ; preds = %pass6, %L732 + ret void + +fail: ; preds = %conversion + %state.i.fca.0.extract.i = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 + %16 = inttoptr i64 %state.i.fca.0.extract.i to i32* + store i32 1, i32* %16, align 1 + call void @llvm.amdgcn.endpgm() + unreachable + +pass: ; preds = %conversion + %17 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !11 + %18 = zext i32 %17 to i64 + %19 = udiv i64 %18, %.fca.1.0.0.0.0.extract + %20 = mul i64 %19, %.fca.1.0.0.0.0.extract + %21 = icmp sgt i64 %.fca.1.0.0.1.0.extract, 0 + br i1 %21, label %pass2, label %fail1 + +fail1: ; preds = %pass + %state.i.fca.0.extract.i28 = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 + %22 = inttoptr i64 %state.i.fca.0.extract.i28 to i32* + store i32 1, i32* %22, align 1 + call void @llvm.amdgcn.endpgm() + unreachable + +pass2: ; preds = %pass + %23 = udiv i64 %19, %6 + %24 = mul i64 %23, %6 + %25 = sub i64 %19, %24 + %26 = call i64 @llvm.smax.i64(i64 %.fca.1.1.0.1.0.extract, i64 0) + %27 = icmp sgt i64 %.fca.1.1.0.0.0.extract, 0 + br i1 %27, label %pass4, label %fail3 + +fail3: ; preds = %pass2 + %state.i.fca.0.extract.i42 = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 + %28 = inttoptr i64 %state.i.fca.0.extract.i42 to i32* + store i32 1, i32* %28, align 1 + call void @llvm.amdgcn.endpgm() + unreachable + +pass4: ; preds = %pass2 + %29 = icmp sgt i64 %.fca.1.1.0.1.0.extract, 0 + br i1 %29, label %pass6, label %fail5 + +fail5: ; preds = %pass4 + %state.i.fca.0.extract.i56 = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 + %30 = inttoptr i64 %state.i.fca.0.extract.i56 to i32* + store i32 1, i32* %30, align 1 + call void @llvm.amdgcn.endpgm() + unreachable + +pass6: ; preds = %pass4 + %31 = zext i32 %5 to i64 + %32 = udiv i64 %31, %.fca.1.1.0.0.0.extract + %33 = udiv i64 %32, %26 + %34 = mul i64 %33, %26 + %35 = add i64 %20, %32 + %reass.add = sub i64 %18, %35 + %reass.mul = mul i64 %reass.add, %.fca.1.1.0.0.0.extract + %36 = add nuw nsw i64 %31, 1 + %37 = add i64 %36, %reass.mul + %38 = mul i64 %25, %.fca.1.1.0.1.0.extract + %39 = add i64 %38, 1 + %40 = add i64 %39, %32 + %41 = sub i64 %40, %34 + %42 = mul i64 %23, %.fca.1.1.0.2.0.extract + %43 = add i64 %42, 1 + %44 = add i64 %43, %33 + %45 = icmp sgt i64 %37, 0 + %46 = icmp sle i64 %37, %.fca.0.0.0.0.extract + %47 = and i1 %45, %46 + %48 = icmp sgt i64 %41, 0 + %49 = icmp sle i64 %41, %.fca.0.0.1.0.extract + %50 = and i1 %48, %49 + %51 = icmp sgt i64 %44, 0 + %52 = icmp sle i64 %44, %.fca.0.0.2.0.extract + %53 = and i1 %51, %52 + %54 = and i1 %47, %50 + %55 = and i1 %53, %54 + br i1 %55, label %pass10, label %L738 + +pass10: ; preds = %pass6 + %56 = udiv i64 %19, %.fca.1.0.0.1.0.extract + %57 = mul i64 %56, %.fca.1.0.0.1.0.extract + %58 = udiv i64 %32, %.fca.1.1.0.1.0.extract + %59 = mul i64 %56, %.fca.1.1.0.2.0.extract + %60 = call i64 @llvm.smax.i64(i64 %.fca.0.0.0.0.extract, i64 0) + %61 = call i64 @llvm.smax.i64(i64 %.fca.0.0.1.0.extract, i64 0) + %62 = add i64 %57, %58 + %reass.add134 = sub i64 %19, %62 + %reass.mul135 = mul i64 %reass.add134, %.fca.1.1.0.1.0.extract + %63 = add i64 %58, %59 + %64 = mul i64 %63, %61 + %65 = sub i64 0, %2 + %.not = icmp sgt i64 %65, %2 + %66 = sext i1 %.not to i64 + %value_phi = xor i64 %66, %2 + %.not125.not = icmp slt i64 %value_phi, %65 + br i1 %.not125.not, label %L732, label %L674.preheader + +L674.preheader: ; preds = %pass10 + %67 = sub i64 0, %3 + %.not126 = icmp sgt i64 %67, %3 + %68 = sext i1 %.not126 to i64 + %value_phi19 = xor i64 %68, %3 + %.not127.not = icmp slt i64 %value_phi19, %67 + br label %L674 +} + +attributes #0 = { nounwind readnone speculatable willreturn } +attributes #1 = { cold noreturn nounwind } +attributes #2 = { nocallback nofree nosync nounwind readnone speculatable willreturn } +attributes #3 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} +!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} +!julia.kernel = !{!6} + +!0 = !{i32 2, !"Dwarf Version", i32 4} +!1 = !{i32 2, !"Debug Info Version", i32 3} +!2 = !{i32 1, !"wchar_size", i32 4} +!3 = !{i32 7, !"PIC Level", i32 1} +!4 = !{i32 2, i32 0} +!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} +!6 = !{void ({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} +!7 = !{i32 0, i32 1023} +!8 = !{!9, !9, i64 0, i64 0} +!9 = !{!"custom_tbaa_addrspace(1)", !10, i64 0} +!10 = !{!"custom_tbaa"} +!11 = !{i32 0, i32 -2} diff --git a/devcode_size/gpu_kernel_xx!_1.typed.jl b/devcode_size/gpu_kernel_xx!_1.typed.jl new file mode 100644 index 000000000..4ab2ab9d7 --- /dev/null +++ b/devcode_size/gpu_kernel_xx!_1.typed.jl @@ -0,0 +1,2303 @@ +CodeInfo( + @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:94 within `gpu_kernel_xx!` + ┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:144 within `#__validindex` + │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` + ││┌ @ Base.jl:37 within `getproperty` +1 ───│││ %1 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{3, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}} +│ │└└ +│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %2 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ ││││││ %3 = Base.llvmcall(%2, UInt32, Tuple{})::UInt32 +│ ││││└└ +│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ │││││ %4 = Base.add_int(%3, 0x00000001)::UInt32 +│ ││└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %5 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%5, UInt32, Tuple{})::UInt32 +│ ││└└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %7 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%7, UInt32, Tuple{})::UInt32 +│ │└└└└└ +│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %9 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ ││││││ %10 = Base.llvmcall(%9, UInt32, Tuple{})::UInt32 +│ ││││└└ +│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ │││││ %11 = Base.add_int(%10, 0x00000001)::UInt32 +│ ││└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %12 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%12, UInt32, Tuple{})::UInt32 +│ ││└└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ ││││││ %14 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ ││││││ Base.llvmcall(%14, UInt32, Tuple{})::UInt32 +│ │└└└└└ +│ │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` +│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` +│ │││┌ @ Base.jl:37 within `getproperty` +│ ││││ %16 = Base.getfield(%1, :blocks)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││└└ +│ ││┌ @ abstractarray.jl:1291 within `getindex` +│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ ││││┌ @ indices.jl:359 within `_to_indices1` +│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ ││││││┌ @ number.jl:7 within `convert` +│ │││││││┌ @ boot.jl:784 within `Int64` +│ ││││││││┌ @ boot.jl:708 within `toInt64` +│ │││││││││ %17 = Core.zext_int(Core.Int64, %4)::Int64 +│ │││└└└└└└ +│ │││┌ @ abstractarray.jl:1335 within `_getindex` +└────││││ goto #6 if not false + ││││┌ @ abstractarray.jl:700 within `checkbounds` +2 ───│││││ %19 = Core.tuple(%17)::Tuple{Int64} +│ │││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ │││││┌ @ abstractarray.jl:388 within `eachindex` +│ ││││││┌ @ multidimensional.jl:455 within `length` +│ │││││││┌ @ multidimensional.jl:453 within `size` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %20 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││││└ +│ ││││││││┌ @ tuple.jl:293 within `map` +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %21 = Base.getfield(%20, 1, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %22 = Base.getfield(%21, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %23 = Base.getfield(%20, 2, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %24 = Base.getfield(%23, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %25 = Base.getfield(%20, 3, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %26 = Base.getfield(%25, :stop)::Int64 +│ │││││││└└└└ +│ │││││││┌ @ tuple.jl:595 within `prod` +│ ││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 +│ │││││││││ %27 = Base.mul_int(%22, %24)::Int64 +│ │││││││││ %28 = Base.mul_int(%27, %26)::Int64 +│ ││││││└└└ +│ ││││││┌ @ range.jl:469 within `oneto` +│ │││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││┌ @ int.jl:83 within `<` +│ ││││││││││ %29 = Base.slt_int(%28, 0)::Bool +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││ %30 = Core.ifelse(%29, 0, %28)::Int64 +│ │││││└└└└└ +│ │││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││┌ @ int.jl:86 within `-` +│ │││││││ %31 = Base.sub_int(%17, 1)::Int64 +│ ││││││└ +│ ││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││ %32 = Base.bitcast(UInt64, %31)::UInt64 +│ ││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││ %33 = Base.bitcast(UInt64, %30)::UInt64 +│ ││││││└└ +│ ││││││┌ @ int.jl:513 within `<` +│ │││││││ %34 = Base.ult_int(%32, %33)::Bool +│ │││││└└ +│ │││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││ goto #4 if not %34 +3 ───│││││ goto #5 +4 ───│││││ invoke Base.throw_boundserror(%16::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %19::Tuple{Int64})::Union{} +└────│││││ unreachable +5 ───│││││ nothing::Nothing + ││││└ + ││││ @ abstractarray.jl:1336 within `_getindex` + ││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` + │││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` + ││││││┌ @ abstractarray.jl:2962 within `_ind2sub` + │││││││┌ @ multidimensional.jl:344 within `axes` + ││││││││┌ @ Base.jl:37 within `getproperty` +6 ┄──│││││││││ %40 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││││└ +│ ││││││││┌ @ tuple.jl:293 within `map` +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %41 = Base.getfield(%40, 1, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %42 = Base.getfield(%41, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %43 = Base.slt_int(%42, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %44 = Core.ifelse(%43, 0, %42)::Int64 +│ │││││││││└└└└└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %45 = Base.getfield(%40, 2, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %46 = Base.getfield(%45, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %47 = Base.slt_int(%46, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %48 = Core.ifelse(%47, 0, %46)::Int64 +│ │││││││└└└└└└└└ +│ │││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %49 = Base.sub_int(%17, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` +│ ││││││││┌ @ abstractarray.jl:3020 within `_div` +│ │││││││││┌ @ int.jl:295 within `div` +│ ││││││││││ %50 = Base.checked_sdiv_int(%49, %44)::Int64 +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` +│ ││││││││┌ @ int.jl:88 within `*` +│ │││││││││ %51 = Base.mul_int(%44, %50)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %52 = Base.sub_int(%49, %51)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:87 within `+` +│ │││││││││ %53 = Base.add_int(%52, 1)::Int64 +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 +│ ││││││││┌ @ abstractarray.jl:3020 within `_div` +│ │││││││││┌ @ int.jl:295 within `div` +│ ││││││││││ %54 = Base.checked_sdiv_int(%50, %48)::Int64 +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 +│ ││││││││┌ @ int.jl:88 within `*` +│ │││││││││ %55 = Base.mul_int(%48, %54)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %56 = Base.sub_int(%50, %55)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:87 within `+` +│ │││││││││ %57 = Base.add_int(%56, 1)::Int64 +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 +│ ││││││││┌ @ abstractarray.jl:3018 within `_lookup` +│ │││││││││┌ @ int.jl:87 within `+` +│ ││││││││││ %58 = Base.add_int(%54, 1)::Int64 +│ ││││└└└└└└ +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────│││││ goto #11 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +7 ───││││││ %60 = Core.tuple(%53, %57, %58)::Tuple{Int64, Int64, Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 +│ ││││││┌ @ multidimensional.jl:344 within `axes` +│ │││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││ %61 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││││└ +│ │││││││┌ @ tuple.jl:293 within `map` +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %62 = Base.getfield(%61, 1, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %63 = Base.getfield(%62, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %64 = Base.slt_int(%63, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %65 = Core.ifelse(%64, 0, %63)::Int64 +│ ││││││││└└└└└└ +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %66 = Base.getfield(%61, 2, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %67 = Base.getfield(%66, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %68 = Base.slt_int(%67, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %69 = Core.ifelse(%68, 0, %67)::Int64 +│ ││││││││└└└└└└ +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %70 = Base.getfield(%61, 3, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %71 = Base.getfield(%70, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %72 = Base.slt_int(%71, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %73 = Core.ifelse(%72, 0, %71)::Int64 +│ ││││││└└└└└└└└ +│ ││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %74 = Base.sub_int(%53, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %75 = Base.bitcast(UInt64, %74)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %76 = Base.bitcast(UInt64, %65)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %77 = Base.ult_int(%75, %76)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %78 = Base.sub_int(%57, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %79 = Base.bitcast(UInt64, %78)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %80 = Base.bitcast(UInt64, %69)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %81 = Base.ult_int(%79, %80)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %82 = Base.sub_int(%58, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %83 = Base.bitcast(UInt64, %82)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %84 = Base.bitcast(UInt64, %73)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %85 = Base.ult_int(%83, %84)::Bool +│ │││││││└└ +│ │││││││┌ @ bool.jl:38 within `&` +│ ││││││││ %86 = Base.and_int(%85, true)::Bool +│ │││││││└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ │││││││┌ @ bool.jl:38 within `&` +│ ││││││││ %87 = Base.and_int(%81, %86)::Bool +│ │││││││└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` +│ │││││││┌ @ bool.jl:38 within `&` +│ ││││││││ %88 = Base.and_int(%77, %87)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #9 if not %88 +8 ───││││││ goto #10 +9 ───││││││ invoke Base.throw_boundserror(%16::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %60::Tuple{Int64, Int64, Int64})::Union{} +└────││││││ unreachable +10 ──││││││ nothing::Nothing + │││││└ + │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + │││││┌ @ Base.jl:37 within `getproperty` +11 ┄─││││││ %94 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:322 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %95 = Base.getfield(%94, 1, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ │││││││┌ @ range.jl:937 within `getindex` +└────││││││││ goto #15 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +12 ──││││││││││ %97 = Base.slt_int(0, %53)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %98 = Base.getfield(%95, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %99 = Base.sle_int(%53, %98)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %100 = Base.and_int(%97, %99)::Bool +│ ││││││││└ +└────││││││││ goto #14 if not %100 +13 ──││││││││ goto #15 +14 ──││││││││ invoke Base.throw_boundserror(%95::Base.OneTo{Int64}, %53::Int64)::Union{} +└────││││││││ unreachable +15 ┄─││││││││ goto #16 +16 ──││││││││ goto #17 + ││││││└└ + ││││││┌ @ essentials.jl:374 within `tail` +17 ──│││││││ %107 = Core.getfield(%94, 2)::Base.OneTo{Int64} +│ │││││││ %108 = Core.getfield(%94, 3)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ │││││││┌ @ range.jl:937 within `getindex` +└────││││││││ goto #21 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +18 ──││││││││││ %110 = Base.slt_int(0, %57)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %111 = Base.getfield(%107, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %112 = Base.sle_int(%57, %111)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %113 = Base.and_int(%110, %112)::Bool +│ ││││││││└ +└────││││││││ goto #20 if not %113 +19 ──││││││││ goto #21 +20 ──││││││││ invoke Base.throw_boundserror(%107::Base.OneTo{Int64}, %57::Int64)::Union{} +└────││││││││ unreachable +21 ┄─││││││││ goto #22 +22 ──││││││││ goto #23 + ││││││││ @ range.jl:937 within `getindex` +23 ──││││││││ goto #27 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +24 ──││││││││││ %121 = Base.slt_int(0, %58)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %122 = Base.getfield(%108, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %123 = Base.sle_int(%58, %122)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %124 = Base.and_int(%121, %123)::Bool +│ ││││││││└ +└────││││││││ goto #26 if not %124 +25 ──││││││││ goto #27 +26 ──││││││││ invoke Base.throw_boundserror(%108::Base.OneTo{Int64}, %58::Int64)::Union{} +└────││││││││ unreachable +27 ┄─││││││││ goto #28 +28 ──││││││││ goto #29 +29 ──││││││││ goto #30 +30 ──││││││││ goto #31 +31 ──││││││││ goto #32 +32 ──││││││││ goto #33 +33 ──││││││││ goto #34 + ││└└└└└└ + ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + │││┌ @ Base.jl:37 within `getproperty` +34 ──││││ %136 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││└└ +│ ││┌ @ abstractarray.jl:1291 within `getindex` +│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ ││││┌ @ indices.jl:359 within `_to_indices1` +│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ ││││││┌ @ number.jl:7 within `convert` +│ │││││││┌ @ boot.jl:784 within `Int64` +│ ││││││││┌ @ boot.jl:708 within `toInt64` +│ │││││││││ %137 = Core.zext_int(Core.Int64, %11)::Int64 +│ │││└└└└└└ +│ │││┌ @ abstractarray.jl:1335 within `_getindex` +└────││││ goto #39 if not false + ││││┌ @ abstractarray.jl:700 within `checkbounds` +35 ──│││││ %139 = Core.tuple(%137)::Tuple{Int64} +│ │││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ │││││┌ @ abstractarray.jl:388 within `eachindex` +│ ││││││┌ @ multidimensional.jl:455 within `length` +│ │││││││┌ @ multidimensional.jl:453 within `size` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %140 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││││└ +│ ││││││││┌ @ tuple.jl:293 within `map` +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %141 = Base.getfield(%140, 1, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %142 = Base.getfield(%141, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %143 = Base.getfield(%140, 2, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %144 = Base.getfield(%143, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %145 = Base.getfield(%140, 3, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %146 = Base.getfield(%145, :stop)::Int64 +│ │││││││└└└└ +│ │││││││┌ @ tuple.jl:595 within `prod` +│ ││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 +│ │││││││││ %147 = Base.mul_int(%142, %144)::Int64 +│ │││││││││ %148 = Base.mul_int(%147, %146)::Int64 +│ ││││││└└└ +│ ││││││┌ @ range.jl:469 within `oneto` +│ │││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││┌ @ int.jl:83 within `<` +│ ││││││││││ %149 = Base.slt_int(%148, 0)::Bool +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││ %150 = Core.ifelse(%149, 0, %148)::Int64 +│ │││││└└└└└ +│ │││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││┌ @ int.jl:86 within `-` +│ │││││││ %151 = Base.sub_int(%137, 1)::Int64 +│ ││││││└ +│ ││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││ %152 = Base.bitcast(UInt64, %151)::UInt64 +│ ││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││ %153 = Base.bitcast(UInt64, %150)::UInt64 +│ ││││││└└ +│ ││││││┌ @ int.jl:513 within `<` +│ │││││││ %154 = Base.ult_int(%152, %153)::Bool +│ │││││└└ +│ │││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││ goto #37 if not %154 +36 ──│││││ goto #38 +37 ──│││││ invoke Base.throw_boundserror(%136::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %139::Tuple{Int64})::Union{} +└────│││││ unreachable +38 ──│││││ nothing::Nothing + ││││└ + ││││ @ abstractarray.jl:1336 within `_getindex` + ││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` + │││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` + ││││││┌ @ abstractarray.jl:2962 within `_ind2sub` + │││││││┌ @ multidimensional.jl:344 within `axes` + ││││││││┌ @ Base.jl:37 within `getproperty` +39 ┄─│││││││││ %160 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││││└ +│ ││││││││┌ @ tuple.jl:293 within `map` +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %161 = Base.getfield(%160, 1, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %162 = Base.getfield(%161, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %163 = Base.slt_int(%162, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %164 = Core.ifelse(%163, 0, %162)::Int64 +│ │││││││││└└└└└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %165 = Base.getfield(%160, 2, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %166 = Base.getfield(%165, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %167 = Base.slt_int(%166, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %168 = Core.ifelse(%167, 0, %166)::Int64 +│ │││││││└└└└└└└└ +│ │││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %169 = Base.sub_int(%137, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` +│ ││││││││┌ @ abstractarray.jl:3020 within `_div` +│ │││││││││┌ @ int.jl:295 within `div` +│ ││││││││││ %170 = Base.checked_sdiv_int(%169, %164)::Int64 +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` +│ ││││││││┌ @ int.jl:88 within `*` +│ │││││││││ %171 = Base.mul_int(%164, %170)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %172 = Base.sub_int(%169, %171)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:87 within `+` +│ │││││││││ %173 = Base.add_int(%172, 1)::Int64 +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 +│ ││││││││┌ @ abstractarray.jl:3020 within `_div` +│ │││││││││┌ @ int.jl:295 within `div` +│ ││││││││││ %174 = Base.checked_sdiv_int(%170, %168)::Int64 +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 +│ ││││││││┌ @ int.jl:88 within `*` +│ │││││││││ %175 = Base.mul_int(%168, %174)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %176 = Base.sub_int(%170, %175)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:87 within `+` +│ │││││││││ %177 = Base.add_int(%176, 1)::Int64 +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 +│ ││││││││┌ @ abstractarray.jl:3018 within `_lookup` +│ │││││││││┌ @ int.jl:87 within `+` +│ ││││││││││ %178 = Base.add_int(%174, 1)::Int64 +│ ││││└└└└└└ +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────│││││ goto #44 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +40 ──││││││ %180 = Core.tuple(%173, %177, %178)::Tuple{Int64, Int64, Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 +│ ││││││┌ @ multidimensional.jl:344 within `axes` +│ │││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││ %181 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││││└ +│ │││││││┌ @ tuple.jl:293 within `map` +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %182 = Base.getfield(%181, 1, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %183 = Base.getfield(%182, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %184 = Base.slt_int(%183, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %185 = Core.ifelse(%184, 0, %183)::Int64 +│ ││││││││└└└└└└ +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %186 = Base.getfield(%181, 2, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %187 = Base.getfield(%186, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %188 = Base.slt_int(%187, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %189 = Core.ifelse(%188, 0, %187)::Int64 +│ ││││││││└└└└└└ +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %190 = Base.getfield(%181, 3, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %191 = Base.getfield(%190, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %192 = Base.slt_int(%191, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %193 = Core.ifelse(%192, 0, %191)::Int64 +│ ││││││└└└└└└└└ +│ ││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %194 = Base.sub_int(%173, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %195 = Base.bitcast(UInt64, %194)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %196 = Base.bitcast(UInt64, %185)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %197 = Base.ult_int(%195, %196)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %198 = Base.sub_int(%177, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %199 = Base.bitcast(UInt64, %198)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %200 = Base.bitcast(UInt64, %189)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %201 = Base.ult_int(%199, %200)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 +│ │││││││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %202 = Base.sub_int(%178, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ essentials.jl:524 within `unsigned` +│ │││││││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %203 = Base.bitcast(UInt64, %202)::UInt64 +│ ││││││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││││││ %204 = Base.bitcast(UInt64, %193)::UInt64 +│ ││││││││└└ +│ ││││││││┌ @ int.jl:513 within `<` +│ │││││││││ %205 = Base.ult_int(%203, %204)::Bool +│ │││││││└└ +│ │││││││┌ @ bool.jl:38 within `&` +│ ││││││││ %206 = Base.and_int(%205, true)::Bool +│ │││││││└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ │││││││┌ @ bool.jl:38 within `&` +│ ││││││││ %207 = Base.and_int(%201, %206)::Bool +│ │││││││└ +│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` +│ │││││││┌ @ bool.jl:38 within `&` +│ ││││││││ %208 = Base.and_int(%197, %207)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #42 if not %208 +41 ──││││││ goto #43 +42 ──││││││ invoke Base.throw_boundserror(%136::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %180::Tuple{Int64, Int64, Int64})::Union{} +└────││││││ unreachable +43 ──││││││ nothing::Nothing + │││││└ + │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + │││││┌ @ Base.jl:37 within `getproperty` +44 ┄─││││││ %214 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:322 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %215 = Base.getfield(%214, 1, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ │││││││┌ @ range.jl:937 within `getindex` +└────││││││││ goto #48 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +45 ──││││││││││ %217 = Base.slt_int(0, %173)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %218 = Base.getfield(%215, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %219 = Base.sle_int(%173, %218)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %220 = Base.and_int(%217, %219)::Bool +│ ││││││││└ +└────││││││││ goto #47 if not %220 +46 ──││││││││ goto #48 +47 ──││││││││ invoke Base.throw_boundserror(%215::Base.OneTo{Int64}, %173::Int64)::Union{} +└────││││││││ unreachable +48 ┄─││││││││ goto #49 +49 ──││││││││ goto #50 + ││││││└└ + ││││││┌ @ essentials.jl:374 within `tail` +50 ──│││││││ %227 = Core.getfield(%214, 2)::Base.OneTo{Int64} +│ │││││││ %228 = Core.getfield(%214, 3)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ │││││││┌ @ range.jl:937 within `getindex` +└────││││││││ goto #54 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +51 ──││││││││││ %230 = Base.slt_int(0, %177)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %231 = Base.getfield(%227, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %232 = Base.sle_int(%177, %231)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %233 = Base.and_int(%230, %232)::Bool +│ ││││││││└ +└────││││││││ goto #53 if not %233 +52 ──││││││││ goto #54 +53 ──││││││││ invoke Base.throw_boundserror(%227::Base.OneTo{Int64}, %177::Int64)::Union{} +└────││││││││ unreachable +54 ┄─││││││││ goto #55 +55 ──││││││││ goto #56 + ││││││││ @ range.jl:937 within `getindex` +56 ──││││││││ goto #60 if not false + ││││││││┌ @ operators.jl:378 within `>` + │││││││││┌ @ int.jl:83 within `<` +57 ──││││││││││ %241 = Base.slt_int(0, %178)::Bool +│ ││││││││└└ +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %242 = Base.getfield(%228, :stop)::Int64 +│ ││││││││└ +│ ││││││││┌ @ int.jl:514 within `<=` +│ │││││││││ %243 = Base.sle_int(%178, %242)::Bool +│ ││││││││└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %244 = Base.and_int(%241, %243)::Bool +│ ││││││││└ +└────││││││││ goto #59 if not %244 +58 ──││││││││ goto #60 +59 ──││││││││ invoke Base.throw_boundserror(%228::Base.OneTo{Int64}, %178::Int64)::Union{} +└────││││││││ unreachable +60 ┄─││││││││ goto #61 +61 ──││││││││ goto #62 +62 ──││││││││ goto #63 +63 ──││││││││ goto #64 +64 ──││││││││ goto #65 +65 ──││││││││ goto #66 +66 ──││││││││ goto #67 + ││└└└└└└ + ││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 + ││┌ @ ntuple.jl:50 within `ntuple` + │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` + ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + │││││┌ @ Base.jl:37 within `getproperty` +67 ──││││││ %256 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││││└└ +│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %257 = Base.getfield(%256, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:293 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %258 = Base.getfield(%257, 1, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ range.jl:779 within `length` +│ │││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││ %259 = Base.getfield(%258, :stop)::Int64 +│ ││││└└└└ +│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ ││││┌ @ int.jl:86 within `-` +│ │││││ %260 = Base.sub_int(%53, 1)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:88 within `*` +│ │││││ %261 = Base.mul_int(%260, %259)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:87 within `+` +│ │││││ %262 = Base.add_int(%261, %173)::Int64 +│ ││││└ +│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` +│ ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %263 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││││└└ +│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %264 = Base.getfield(%263, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:293 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %265 = Base.getfield(%264, 2, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ range.jl:779 within `length` +│ │││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││ %266 = Base.getfield(%265, :stop)::Int64 +│ ││││└└└└ +│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ ││││┌ @ int.jl:86 within `-` +│ │││││ %267 = Base.sub_int(%57, 1)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:88 within `*` +│ │││││ %268 = Base.mul_int(%267, %266)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:87 within `+` +│ │││││ %269 = Base.add_int(%268, %177)::Int64 +│ ││││└ +│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` +│ ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %270 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││││└└ +│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %271 = Base.getfield(%270, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││└ +│ │││││┌ @ tuple.jl:293 within `map` +│ ││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││ %272 = Base.getfield(%271, 3, true)::Base.OneTo{Int64} +│ ││││││└ +│ ││││││┌ @ range.jl:779 within `length` +│ │││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││ %273 = Base.getfield(%272, :stop)::Int64 +│ ││││└└└└ +│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ ││││┌ @ int.jl:86 within `-` +│ │││││ %274 = Base.sub_int(%58, 1)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:88 within `*` +│ │││││ %275 = Base.mul_int(%274, %273)::Int64 +│ ││││└ +│ ││││┌ @ int.jl:87 within `+` +│ │││││ %276 = Base.add_int(%275, %178)::Int64 +└────│││││ goto #68 + │└└└└ + │ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:145 within `#__validindex` + │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` + ││┌ @ Base.jl:37 within `getproperty` +68 ──│││ %278 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ │└└ +│ │┌ @ multidimensional.jl:471 within `in` +│ ││┌ @ Base.jl:37 within `getproperty` +│ │││ %279 = Base.getfield(%278, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││└ +│ ││┌ @ tuple.jl:322 within `map` +│ │││┌ @ tuple.jl:31 within `getindex` +│ ││││ %280 = Base.getfield(%279, 1, true)::Base.OneTo{Int64} +│ │││└ +│ │││┌ @ range.jl:1439 within `in` +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %281 = Base.sle_int(1, %262)::Bool +│ ││││└ +│ ││││┌ @ range.jl:839 within `last` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %282 = Base.getfield(%280, :stop)::Int64 +│ ││││└└ +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %283 = Base.sle_int(%262, %282)::Bool +│ ││││└ +│ ││││┌ @ bool.jl:38 within `&` +│ │││││ %284 = Base.and_int(%281, %283)::Bool +│ │││└└ +│ │││┌ @ essentials.jl:374 within `tail` +│ ││││ %285 = Core.getfield(%279, 2)::Base.OneTo{Int64} +│ ││││ %286 = Core.getfield(%279, 3)::Base.OneTo{Int64} +│ │││└ +│ │││ @ tuple.jl:322 within `map` @ tuple.jl:319 +│ │││┌ @ range.jl:1439 within `in` +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %287 = Base.sle_int(1, %269)::Bool +│ ││││└ +│ ││││┌ @ range.jl:839 within `last` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %288 = Base.getfield(%285, :stop)::Int64 +│ ││││└└ +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %289 = Base.sle_int(%269, %288)::Bool +│ ││││└ +│ ││││┌ @ bool.jl:38 within `&` +│ │││││ %290 = Base.and_int(%287, %289)::Bool +│ ││││└ +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %291 = Base.sle_int(1, %276)::Bool +│ ││││└ +│ ││││┌ @ range.jl:839 within `last` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %292 = Base.getfield(%286, :stop)::Int64 +│ ││││└└ +│ ││││┌ @ int.jl:514 within `<=` +│ │││││ %293 = Base.sle_int(%276, %292)::Bool +│ ││││└ +│ ││││┌ @ bool.jl:38 within `&` +│ │││││ %294 = Base.and_int(%291, %293)::Bool +│ ││└└└ +│ ││┌ @ tuple.jl:600 within `all` +│ │││┌ @ bool.jl:38 within `&` +│ ││││ %295 = Base.and_int(%284, %290)::Bool +│ ││││ %296 = Base.and_int(%295, %294)::Bool +│ │└└└ +└────│ goto #69 + └ +69 ── goto #186 if not %296 + @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:95 within `gpu_kernel_xx!` + ┌ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:12 within `macro expansion` + │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:125 within `#__index_Global_Linear` + ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` + │││┌ @ Base.jl:37 within `getproperty` +70 ──││││ %299 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{3, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}} +│ ││└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %300 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ │││││││ %301 = Base.llvmcall(%300, UInt32, Tuple{})::UInt32 +│ │││││└└ +│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ ││││││ %302 = Base.add_int(%301, 0x00000001)::UInt32 +│ │││└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %303 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%303, UInt32, Tuple{})::UInt32 +│ │││└└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %305 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%305, UInt32, Tuple{})::UInt32 +│ ││└└└└└ +│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %307 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ │││││││ %308 = Base.llvmcall(%307, UInt32, Tuple{})::UInt32 +│ │││││└└ +│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 +│ ││││││ %309 = Base.add_int(%308, 0x00000001)::UInt32 +│ │││└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %310 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%310, UInt32, Tuple{})::UInt32 +│ │││└└└└ +│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` +│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││││ %312 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} +│ │││││││ Base.llvmcall(%312, UInt32, Tuple{})::UInt32 +│ ││└└└└└ +│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` +│ │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` +│ ││││┌ @ Base.jl:37 within `getproperty` +│ │││││ %314 = Base.getfield(%299, :blocks)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ │││└└ +│ │││┌ @ abstractarray.jl:1291 within `getindex` +│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ │││││┌ @ indices.jl:359 within `_to_indices1` +│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ │││││││┌ @ number.jl:7 within `convert` +│ ││││││││┌ @ boot.jl:784 within `Int64` +│ │││││││││┌ @ boot.jl:708 within `toInt64` +│ ││││││││││ %315 = Core.zext_int(Core.Int64, %302)::Int64 +│ ││││└└└└└└ +│ ││││┌ @ abstractarray.jl:1335 within `_getindex` +└────│││││ goto #75 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +71 ──││││││ %317 = Core.tuple(%315)::Tuple{Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ ││││││┌ @ abstractarray.jl:388 within `eachindex` +│ │││││││┌ @ multidimensional.jl:455 within `length` +│ ││││││││┌ @ multidimensional.jl:453 within `size` +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %318 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││││││└ +│ │││││││││┌ @ tuple.jl:293 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %319 = Base.getfield(%318, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %320 = Base.getfield(%319, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %321 = Base.getfield(%318, 2, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %322 = Base.getfield(%321, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %323 = Base.getfield(%318, 3, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %324 = Base.getfield(%323, :stop)::Int64 +│ ││││││││└└└└ +│ ││││││││┌ @ tuple.jl:595 within `prod` +│ │││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 +│ ││││││││││ %325 = Base.mul_int(%320, %322)::Int64 +│ ││││││││││ %326 = Base.mul_int(%325, %324)::Int64 +│ │││││││└└└ +│ │││││││┌ @ range.jl:469 within `oneto` +│ ││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││ %327 = Base.slt_int(%326, 0)::Bool +│ ││││││││││└ +│ ││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││ %328 = Core.ifelse(%327, 0, %326)::Int64 +│ ││││││└└└└└ +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %329 = Base.sub_int(%315, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %330 = Base.bitcast(UInt64, %329)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %331 = Base.bitcast(UInt64, %328)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %332 = Base.ult_int(%330, %331)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #73 if not %332 +72 ──││││││ goto #74 +73 ──││││││ invoke Base.throw_boundserror(%314::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %317::Tuple{Int64})::Union{} +└────││││││ unreachable +74 ──││││││ nothing::Nothing + │││││└ + │││││ @ abstractarray.jl:1336 within `_getindex` + │││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` + ││││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` + │││││││┌ @ abstractarray.jl:2962 within `_ind2sub` + ││││││││┌ @ multidimensional.jl:344 within `axes` + │││││││││┌ @ Base.jl:37 within `getproperty` +75 ┄─││││││││││ %338 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││││││└ +│ │││││││││┌ @ tuple.jl:293 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %339 = Base.getfield(%338, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %340 = Base.getfield(%339, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %341 = Base.slt_int(%340, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %342 = Core.ifelse(%341, 0, %340)::Int64 +│ ││││││││││└└└└└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %343 = Base.getfield(%338, 2, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %344 = Base.getfield(%343, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %345 = Base.slt_int(%344, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %346 = Core.ifelse(%345, 0, %344)::Int64 +│ ││││││││└└└└└└└└ +│ ││││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %347 = Base.sub_int(%315, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` +│ │││││││││┌ @ abstractarray.jl:3020 within `_div` +│ ││││││││││┌ @ int.jl:295 within `div` +│ │││││││││││ %348 = Base.checked_sdiv_int(%347, %342)::Int64 +│ │││││││││└└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` +│ │││││││││┌ @ int.jl:88 within `*` +│ ││││││││││ %349 = Base.mul_int(%342, %348)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %350 = Base.sub_int(%347, %349)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:87 within `+` +│ ││││││││││ %351 = Base.add_int(%350, 1)::Int64 +│ │││││││││└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 +│ │││││││││┌ @ abstractarray.jl:3020 within `_div` +│ ││││││││││┌ @ int.jl:295 within `div` +│ │││││││││││ %352 = Base.checked_sdiv_int(%348, %346)::Int64 +│ │││││││││└└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 +│ │││││││││┌ @ int.jl:88 within `*` +│ ││││││││││ %353 = Base.mul_int(%346, %352)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %354 = Base.sub_int(%348, %353)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:87 within `+` +│ ││││││││││ %355 = Base.add_int(%354, 1)::Int64 +│ │││││││││└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 +│ │││││││││┌ @ abstractarray.jl:3018 within `_lookup` +│ ││││││││││┌ @ int.jl:87 within `+` +│ │││││││││││ %356 = Base.add_int(%352, 1)::Int64 +│ │││││└└└└└└ +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────││││││ goto #80 if not false + ││││││┌ @ abstractarray.jl:700 within `checkbounds` +76 ──│││││││ %358 = Core.tuple(%351, %355, %356)::Tuple{Int64, Int64, Int64} +│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 +│ │││││││┌ @ multidimensional.jl:344 within `axes` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %359 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││││└ +│ ││││││││┌ @ tuple.jl:293 within `map` +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %360 = Base.getfield(%359, 1, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %361 = Base.getfield(%360, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %362 = Base.slt_int(%361, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %363 = Core.ifelse(%362, 0, %361)::Int64 +│ │││││││││└└└└└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %364 = Base.getfield(%359, 2, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %365 = Base.getfield(%364, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %366 = Base.slt_int(%365, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %367 = Core.ifelse(%366, 0, %365)::Int64 +│ │││││││││└└└└└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %368 = Base.getfield(%359, 3, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %369 = Base.getfield(%368, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %370 = Base.slt_int(%369, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %371 = Core.ifelse(%370, 0, %369)::Int64 +│ │││││││└└└└└└└└ +│ │││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` +│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %372 = Base.sub_int(%351, 1)::Int64 +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %373 = Base.bitcast(UInt64, %372)::UInt64 +│ │││││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %374 = Base.bitcast(UInt64, %363)::UInt64 +│ │││││││││└└ +│ │││││││││┌ @ int.jl:513 within `<` +│ ││││││││││ %375 = Base.ult_int(%373, %374)::Bool +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %376 = Base.sub_int(%355, 1)::Int64 +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %377 = Base.bitcast(UInt64, %376)::UInt64 +│ │││││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %378 = Base.bitcast(UInt64, %367)::UInt64 +│ │││││││││└└ +│ │││││││││┌ @ int.jl:513 within `<` +│ ││││││││││ %379 = Base.ult_int(%377, %378)::Bool +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 +│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %380 = Base.sub_int(%356, 1)::Int64 +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %381 = Base.bitcast(UInt64, %380)::UInt64 +│ │││││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %382 = Base.bitcast(UInt64, %371)::UInt64 +│ │││││││││└└ +│ │││││││││┌ @ int.jl:513 within `<` +│ ││││││││││ %383 = Base.ult_int(%381, %382)::Bool +│ ││││││││└└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %384 = Base.and_int(%383, true)::Bool +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %385 = Base.and_int(%379, %384)::Bool +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %386 = Base.and_int(%375, %385)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││││ goto #78 if not %386 +77 ──│││││││ goto #79 +78 ──│││││││ invoke Base.throw_boundserror(%314::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %358::Tuple{Int64, Int64, Int64})::Union{} +└────│││││││ unreachable +79 ──│││││││ nothing::Nothing + ││││││└ + ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + ││││││┌ @ Base.jl:37 within `getproperty` +80 ┄─│││││││ %392 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:322 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %393 = Base.getfield(%392, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ ││││││││┌ @ range.jl:937 within `getindex` +└────│││││││││ goto #84 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +81 ──│││││││││││ %395 = Base.slt_int(0, %351)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %396 = Base.getfield(%393, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %397 = Base.sle_int(%351, %396)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %398 = Base.and_int(%395, %397)::Bool +│ │││││││││└ +└────│││││││││ goto #83 if not %398 +82 ──│││││││││ goto #84 +83 ──│││││││││ invoke Base.throw_boundserror(%393::Base.OneTo{Int64}, %351::Int64)::Union{} +└────│││││││││ unreachable +84 ┄─│││││││││ goto #85 +85 ──│││││││││ goto #86 + │││││││└└ + │││││││┌ @ essentials.jl:374 within `tail` +86 ──││││││││ %405 = Core.getfield(%392, 2)::Base.OneTo{Int64} +│ ││││││││ %406 = Core.getfield(%392, 3)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 +│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ ││││││││┌ @ range.jl:937 within `getindex` +└────│││││││││ goto #90 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +87 ──│││││││││││ %408 = Base.slt_int(0, %355)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %409 = Base.getfield(%405, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %410 = Base.sle_int(%355, %409)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %411 = Base.and_int(%408, %410)::Bool +│ │││││││││└ +└────│││││││││ goto #89 if not %411 +88 ──│││││││││ goto #90 +89 ──│││││││││ invoke Base.throw_boundserror(%405::Base.OneTo{Int64}, %355::Int64)::Union{} +└────│││││││││ unreachable +90 ┄─│││││││││ goto #91 +91 ──│││││││││ goto #92 + │││││││││ @ range.jl:937 within `getindex` +92 ──│││││││││ goto #96 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +93 ──│││││││││││ %419 = Base.slt_int(0, %356)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %420 = Base.getfield(%406, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %421 = Base.sle_int(%356, %420)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %422 = Base.and_int(%419, %421)::Bool +│ │││││││││└ +└────│││││││││ goto #95 if not %422 +94 ──│││││││││ goto #96 +95 ──│││││││││ invoke Base.throw_boundserror(%406::Base.OneTo{Int64}, %356::Int64)::Union{} +└────│││││││││ unreachable +96 ┄─│││││││││ goto #97 +97 ──│││││││││ goto #98 +98 ──│││││││││ goto #99 +99 ──│││││││││ goto #100 +100 ─│││││││││ goto #101 +101 ─│││││││││ goto #102 +102 ─│││││││││ goto #103 + │││└└└└└└ + │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + ││││┌ @ Base.jl:37 within `getproperty` +103 ─│││││ %434 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ │││└└ +│ │││┌ @ abstractarray.jl:1291 within `getindex` +│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 +│ │││││┌ @ indices.jl:359 within `_to_indices1` +│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 +│ │││││││┌ @ number.jl:7 within `convert` +│ ││││││││┌ @ boot.jl:784 within `Int64` +│ │││││││││┌ @ boot.jl:708 within `toInt64` +│ ││││││││││ %435 = Core.zext_int(Core.Int64, %309)::Int64 +│ ││││└└└└└└ +│ ││││┌ @ abstractarray.jl:1335 within `_getindex` +└────│││││ goto #108 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +104 ─││││││ %437 = Core.tuple(%435)::Tuple{Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ ││││││┌ @ abstractarray.jl:388 within `eachindex` +│ │││││││┌ @ multidimensional.jl:455 within `length` +│ ││││││││┌ @ multidimensional.jl:453 within `size` +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %438 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││││││└ +│ │││││││││┌ @ tuple.jl:293 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %439 = Base.getfield(%438, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %440 = Base.getfield(%439, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %441 = Base.getfield(%438, 2, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %442 = Base.getfield(%441, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %443 = Base.getfield(%438, 3, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %444 = Base.getfield(%443, :stop)::Int64 +│ ││││││││└└└└ +│ ││││││││┌ @ tuple.jl:595 within `prod` +│ │││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 +│ ││││││││││ %445 = Base.mul_int(%440, %442)::Int64 +│ ││││││││││ %446 = Base.mul_int(%445, %444)::Int64 +│ │││││││└└└ +│ │││││││┌ @ range.jl:469 within `oneto` +│ ││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││ %447 = Base.slt_int(%446, 0)::Bool +│ ││││││││││└ +│ ││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││ %448 = Core.ifelse(%447, 0, %446)::Int64 +│ ││││││└└└└└ +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %449 = Base.sub_int(%435, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %450 = Base.bitcast(UInt64, %449)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %451 = Base.bitcast(UInt64, %448)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %452 = Base.ult_int(%450, %451)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #106 if not %452 +105 ─││││││ goto #107 +106 ─││││││ invoke Base.throw_boundserror(%434::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %437::Tuple{Int64})::Union{} +└────││││││ unreachable +107 ─││││││ nothing::Nothing + │││││└ + │││││ @ abstractarray.jl:1336 within `_getindex` + │││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` + ││││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` + │││││││┌ @ abstractarray.jl:2962 within `_ind2sub` + ││││││││┌ @ multidimensional.jl:344 within `axes` + │││││││││┌ @ Base.jl:37 within `getproperty` +108 ┄││││││││││ %458 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││││││││└ +│ │││││││││┌ @ tuple.jl:293 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %459 = Base.getfield(%458, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %460 = Base.getfield(%459, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %461 = Base.slt_int(%460, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %462 = Core.ifelse(%461, 0, %460)::Int64 +│ ││││││││││└└└└└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %463 = Base.getfield(%458, 2, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││││ %464 = Base.getfield(%463, :stop)::Int64 +│ ││││││││││││└└ +│ ││││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││││ %465 = Base.slt_int(%464, 0)::Bool +│ │││││││││││││││└ +│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││││ %466 = Core.ifelse(%465, 0, %464)::Int64 +│ ││││││││└└└└└└└└ +│ ││││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %467 = Base.sub_int(%435, 1)::Int64 +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` +│ │││││││││┌ @ abstractarray.jl:3020 within `_div` +│ ││││││││││┌ @ int.jl:295 within `div` +│ │││││││││││ %468 = Base.checked_sdiv_int(%467, %462)::Int64 +│ │││││││││└└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` +│ │││││││││┌ @ int.jl:88 within `*` +│ ││││││││││ %469 = Base.mul_int(%462, %468)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %470 = Base.sub_int(%467, %469)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:87 within `+` +│ ││││││││││ %471 = Base.add_int(%470, 1)::Int64 +│ │││││││││└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 +│ │││││││││┌ @ abstractarray.jl:3020 within `_div` +│ ││││││││││┌ @ int.jl:295 within `div` +│ │││││││││││ %472 = Base.checked_sdiv_int(%468, %466)::Int64 +│ │││││││││└└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 +│ │││││││││┌ @ int.jl:88 within `*` +│ ││││││││││ %473 = Base.mul_int(%466, %472)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %474 = Base.sub_int(%468, %473)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:87 within `+` +│ ││││││││││ %475 = Base.add_int(%474, 1)::Int64 +│ │││││││││└ +│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 +│ │││││││││┌ @ abstractarray.jl:3018 within `_lookup` +│ ││││││││││┌ @ int.jl:87 within `+` +│ │││││││││││ %476 = Base.add_int(%472, 1)::Int64 +│ │││││└└└└└└ +│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` +└────││││││ goto #113 if not false + ││││││┌ @ abstractarray.jl:700 within `checkbounds` +109 ─│││││││ %478 = Core.tuple(%471, %475, %476)::Tuple{Int64, Int64, Int64} +│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 +│ │││││││┌ @ multidimensional.jl:344 within `axes` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %479 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││││└ +│ ││││││││┌ @ tuple.jl:293 within `map` +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %480 = Base.getfield(%479, 1, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %481 = Base.getfield(%480, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %482 = Base.slt_int(%481, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %483 = Core.ifelse(%482, 0, %481)::Int64 +│ │││││││││└└└└└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %484 = Base.getfield(%479, 2, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %485 = Base.getfield(%484, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %486 = Base.slt_int(%485, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %487 = Core.ifelse(%486, 0, %485)::Int64 +│ │││││││││└└└└└└ +│ │││││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││││ %488 = Base.getfield(%479, 3, true)::Base.OneTo{Int64} +│ │││││││││└ +│ │││││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││││┌ @ range.jl:706 within `axes` +│ │││││││││││┌ @ range.jl:779 within `length` +│ ││││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││││ %489 = Base.getfield(%488, :stop)::Int64 +│ │││││││││││└└ +│ │││││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││││ %490 = Base.slt_int(%489, 0)::Bool +│ ││││││││││││││└ +│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││││ %491 = Core.ifelse(%490, 0, %489)::Int64 +│ │││││││└└└└└└└└ +│ │││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` +│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %492 = Base.sub_int(%471, 1)::Int64 +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %493 = Base.bitcast(UInt64, %492)::UInt64 +│ │││││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %494 = Base.bitcast(UInt64, %483)::UInt64 +│ │││││││││└└ +│ │││││││││┌ @ int.jl:513 within `<` +│ ││││││││││ %495 = Base.ult_int(%493, %494)::Bool +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %496 = Base.sub_int(%475, 1)::Int64 +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %497 = Base.bitcast(UInt64, %496)::UInt64 +│ │││││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %498 = Base.bitcast(UInt64, %487)::UInt64 +│ │││││││││└└ +│ │││││││││┌ @ int.jl:513 within `<` +│ ││││││││││ %499 = Base.ult_int(%497, %498)::Bool +│ ││││││││└└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 +│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││││┌ @ int.jl:86 within `-` +│ ││││││││││ %500 = Base.sub_int(%476, 1)::Int64 +│ │││││││││└ +│ │││││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %501 = Base.bitcast(UInt64, %500)::UInt64 +│ │││││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││││ %502 = Base.bitcast(UInt64, %491)::UInt64 +│ │││││││││└└ +│ │││││││││┌ @ int.jl:513 within `<` +│ ││││││││││ %503 = Base.ult_int(%501, %502)::Bool +│ ││││││││└└ +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %504 = Base.and_int(%503, true)::Bool +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %505 = Base.and_int(%499, %504)::Bool +│ ││││││││└ +│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` +│ ││││││││┌ @ bool.jl:38 within `&` +│ │││││││││ %506 = Base.and_int(%495, %505)::Bool +│ │││││││└└ +│ │││││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││││ goto #111 if not %506 +110 ─│││││││ goto #112 +111 ─│││││││ invoke Base.throw_boundserror(%434::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %478::Tuple{Int64, Int64, Int64})::Union{} +└────│││││││ unreachable +112 ─│││││││ nothing::Nothing + ││││││└ + ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` + ││││││┌ @ Base.jl:37 within `getproperty` +113 ┄│││││││ %512 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:322 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %513 = Base.getfield(%512, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ ││││││││┌ @ range.jl:937 within `getindex` +└────│││││││││ goto #117 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +114 ─│││││││││││ %515 = Base.slt_int(0, %471)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %516 = Base.getfield(%513, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %517 = Base.sle_int(%471, %516)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %518 = Base.and_int(%515, %517)::Bool +│ │││││││││└ +└────│││││││││ goto #116 if not %518 +115 ─│││││││││ goto #117 +116 ─│││││││││ invoke Base.throw_boundserror(%513::Base.OneTo{Int64}, %471::Int64)::Union{} +└────│││││││││ unreachable +117 ┄│││││││││ goto #118 +118 ─│││││││││ goto #119 + │││││││└└ + │││││││┌ @ essentials.jl:374 within `tail` +119 ─││││││││ %525 = Core.getfield(%512, 2)::Base.OneTo{Int64} +│ ││││││││ %526 = Core.getfield(%512, 3)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 +│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` +│ ││││││││┌ @ range.jl:937 within `getindex` +└────│││││││││ goto #123 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +120 ─│││││││││││ %528 = Base.slt_int(0, %475)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %529 = Base.getfield(%525, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %530 = Base.sle_int(%475, %529)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %531 = Base.and_int(%528, %530)::Bool +│ │││││││││└ +└────│││││││││ goto #122 if not %531 +121 ─│││││││││ goto #123 +122 ─│││││││││ invoke Base.throw_boundserror(%525::Base.OneTo{Int64}, %475::Int64)::Union{} +└────│││││││││ unreachable +123 ┄│││││││││ goto #124 +124 ─│││││││││ goto #125 + │││││││││ @ range.jl:937 within `getindex` +125 ─│││││││││ goto #129 if not false + │││││││││┌ @ operators.jl:378 within `>` + ││││││││││┌ @ int.jl:83 within `<` +126 ─│││││││││││ %539 = Base.slt_int(0, %476)::Bool +│ │││││││││└└ +│ │││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││ %540 = Base.getfield(%526, :stop)::Int64 +│ │││││││││└ +│ │││││││││┌ @ int.jl:514 within `<=` +│ ││││││││││ %541 = Base.sle_int(%476, %540)::Bool +│ │││││││││└ +│ │││││││││┌ @ bool.jl:38 within `&` +│ ││││││││││ %542 = Base.and_int(%539, %541)::Bool +│ │││││││││└ +└────│││││││││ goto #128 if not %542 +127 ─│││││││││ goto #129 +128 ─│││││││││ invoke Base.throw_boundserror(%526::Base.OneTo{Int64}, %476::Int64)::Union{} +└────│││││││││ unreachable +129 ┄│││││││││ goto #130 +130 ─│││││││││ goto #131 +131 ─│││││││││ goto #132 +132 ─│││││││││ goto #133 +133 ─│││││││││ goto #134 +134 ─│││││││││ goto #135 +135 ─│││││││││ goto #136 + │││└└└└└└ + │││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 + │││┌ @ ntuple.jl:50 within `ntuple` + ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` + │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` + ││││││┌ @ Base.jl:37 within `getproperty` +136 ─│││││││ %554 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ │││││└└ +│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ ││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││ %555 = Base.getfield(%554, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:293 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %556 = Base.getfield(%555, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ range.jl:779 within `length` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %557 = Base.getfield(%556, :stop)::Int64 +│ │││││└└└└ +│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ │││││┌ @ int.jl:86 within `-` +│ ││││││ %558 = Base.sub_int(%351, 1)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:88 within `*` +│ ││││││ %559 = Base.mul_int(%558, %557)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:87 within `+` +│ ││││││ %560 = Base.add_int(%559, %471)::Int64 +│ │││││└ +│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` +│ │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` +│ ││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││ %561 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ │││││└└ +│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ ││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││ %562 = Base.getfield(%561, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:293 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %563 = Base.getfield(%562, 2, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ range.jl:779 within `length` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %564 = Base.getfield(%563, :stop)::Int64 +│ │││││└└└└ +│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ │││││┌ @ int.jl:86 within `-` +│ ││││││ %565 = Base.sub_int(%355, 1)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:88 within `*` +│ ││││││ %566 = Base.mul_int(%565, %564)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:87 within `+` +│ ││││││ %567 = Base.add_int(%566, %475)::Int64 +│ │││││└ +│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` +│ │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` +│ ││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││ %568 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ │││││└└ +│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 +│ ││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││ %569 = Base.getfield(%568, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ ││││││└ +│ ││││││┌ @ tuple.jl:293 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %570 = Base.getfield(%569, 3, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ range.jl:779 within `length` +│ ││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││ %571 = Base.getfield(%570, :stop)::Int64 +│ │││││└└└└ +│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` +│ │││││┌ @ int.jl:86 within `-` +│ ││││││ %572 = Base.sub_int(%356, 1)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:88 within `*` +│ ││││││ %573 = Base.mul_int(%572, %571)::Int64 +│ │││││└ +│ │││││┌ @ int.jl:87 within `+` +│ ││││││ %574 = Base.add_int(%573, %476)::Int64 +└────││││││ goto #137 + ││└└└└ + ││ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:127 within `#__index_Global_Linear` + ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` + │││┌ @ Base.jl:37 within `getproperty` +137 ─││││ %576 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││└└ +│ ││┌ @ multidimensional.jl:576 within `LinearIndices` +│ │││┌ @ Base.jl:37 within `getproperty` +│ ││││ %577 = Base.getfield(%576, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} +│ │││└ +│ │││ @ multidimensional.jl:576 within `LinearIndices` @ indices.jl:476 +│ │││ %578 = %new(LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %577)::LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} +│ ││└ +│ ││┌ @ abstractarray.jl:1291 within `getindex` +│ │││┌ @ abstractarray.jl:1323 within `_getindex` +└────││││ goto #142 if not false + ││││┌ @ abstractarray.jl:700 within `checkbounds` +138 ─│││││ %580 = Core.tuple(%560, %567, %574)::Tuple{Int64, Int64, Int64} +│ │││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 +│ │││││┌ @ indices.jl:505 within `axes` +│ ││││││┌ @ tuple.jl:293 within `map` +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %581 = Base.getfield(%577, 1, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││┌ @ range.jl:706 within `axes` +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %582 = Base.getfield(%581, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││ %583 = Base.slt_int(%582, 0)::Bool +│ ││││││││││││└ +│ ││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││ %584 = Core.ifelse(%583, 0, %582)::Int64 +│ │││││││└└└└└└ +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %585 = Base.getfield(%577, 2, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││┌ @ range.jl:706 within `axes` +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %586 = Base.getfield(%585, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││ %587 = Base.slt_int(%586, 0)::Bool +│ ││││││││││││└ +│ ││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││ %588 = Core.ifelse(%587, 0, %586)::Int64 +│ │││││││└└└└└└ +│ │││││││┌ @ tuple.jl:31 within `getindex` +│ ││││││││ %589 = Base.getfield(%577, 3, true)::Base.OneTo{Int64} +│ │││││││└ +│ │││││││┌ @ abstractarray.jl:137 within `axes1` +│ ││││││││┌ @ range.jl:706 within `axes` +│ │││││││││┌ @ range.jl:779 within `length` +│ ││││││││││┌ @ Base.jl:37 within `getproperty` +│ │││││││││││ %590 = Base.getfield(%589, :stop)::Int64 +│ │││││││││└└ +│ │││││││││┌ @ range.jl:469 within `oneto` +│ ││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││││ %591 = Base.slt_int(%590, 0)::Bool +│ ││││││││││││└ +│ ││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││││ %592 = Core.ifelse(%591, 0, %590)::Int64 +│ │││││└└└└└└└└ +│ │││││┌ @ abstractarray.jl:728 within `checkbounds_indices` +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %593 = Base.sub_int(%560, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %594 = Base.bitcast(UInt64, %593)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %595 = Base.bitcast(UInt64, %584)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %596 = Base.ult_int(%594, %595)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %597 = Base.sub_int(%567, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %598 = Base.bitcast(UInt64, %597)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %599 = Base.bitcast(UInt64, %588)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %600 = Base.ult_int(%598, %599)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %601 = Base.sub_int(%574, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %602 = Base.bitcast(UInt64, %601)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %603 = Base.bitcast(UInt64, %592)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %604 = Base.ult_int(%602, %603)::Bool +│ ││││││└└ +│ ││││││┌ @ bool.jl:38 within `&` +│ │││││││ %605 = Base.and_int(%604, true)::Bool +│ ││││││└ +│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 +│ ││││││┌ @ bool.jl:38 within `&` +│ │││││││ %606 = Base.and_int(%600, %605)::Bool +│ ││││││└ +│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` +│ ││││││┌ @ bool.jl:38 within `&` +│ │││││││ %607 = Base.and_int(%596, %606)::Bool +│ │││││└└ +│ │││││ @ abstractarray.jl:702 within `checkbounds` +└────│││││ goto #140 if not %607 +139 ─│││││ goto #141 +140 ─│││││ invoke Base.throw_boundserror(%578::LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %580::Tuple{Int64, Int64, Int64})::Union{} +└────│││││ unreachable +141 ─│││││ nothing::Nothing + ││││└ + ││││ @ abstractarray.jl:1324 within `_getindex` + ││││┌ @ abstractarray.jl:1330 within `_to_linear_index` + │││││┌ @ abstractarray.jl:2957 within `_sub2ind` + ││││││┌ @ indices.jl:505 within `axes` + │││││││┌ @ tuple.jl:293 within `map` + ││││││││┌ @ tuple.jl:31 within `getindex` +142 ┄│││││││││ %613 = Base.getfield(%577, 1, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %614 = Base.getfield(%613, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %615 = Base.slt_int(%614, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %616 = Core.ifelse(%615, 0, %614)::Int64 +│ ││││││││└└└└└└ +│ ││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││ %617 = Base.getfield(%577, 2, true)::Base.OneTo{Int64} +│ ││││││││└ +│ ││││││││┌ @ abstractarray.jl:137 within `axes1` +│ │││││││││┌ @ range.jl:706 within `axes` +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %618 = Base.getfield(%617, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ range.jl:469 within `oneto` +│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││││││││┌ @ promotion.jl:532 within `max` +│ │││││││││││││┌ @ int.jl:83 within `<` +│ ││││││││││││││ %619 = Base.slt_int(%618, 0)::Bool +│ │││││││││││││└ +│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││││││││ %620 = Core.ifelse(%619, 0, %618)::Int64 +│ ││││││└└└└└└└└ +│ ││││││ @ abstractarray.jl:2957 within `_sub2ind` @ abstractarray.jl:2973 +│ ││││││┌ @ abstractarray.jl:2989 within `_sub2ind_recurse` +│ │││││││┌ @ abstractarray.jl:2993 within `nextL` +│ ││││││││┌ @ int.jl:88 within `*` +│ │││││││││ %621 = Base.mul_int(1, %616)::Int64 +│ │││││││└└ +│ │││││││┌ @ abstractarray.jl:2996 within `offsetin` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %622 = Base.sub_int(%560, 1)::Int64 +│ │││││││└└ +│ │││││││┌ @ int.jl:88 within `*` +│ ││││││││ %623 = Base.mul_int(%622, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ int.jl:87 within `+` +│ ││││││││ %624 = Base.add_int(1, %623)::Int64 +│ │││││││└ +│ │││││││ @ abstractarray.jl:2989 within `_sub2ind_recurse` @ abstractarray.jl:2989 +│ │││││││┌ @ abstractarray.jl:2993 within `nextL` +│ ││││││││┌ @ int.jl:88 within `*` +│ │││││││││ %625 = Base.mul_int(%621, %620)::Int64 +│ │││││││└└ +│ │││││││┌ @ abstractarray.jl:2996 within `offsetin` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %626 = Base.sub_int(%567, 1)::Int64 +│ │││││││└└ +│ │││││││┌ @ int.jl:88 within `*` +│ ││││││││ %627 = Base.mul_int(%626, %621)::Int64 +│ │││││││└ +│ │││││││┌ @ int.jl:87 within `+` +│ ││││││││ %628 = Base.add_int(%624, %627)::Int64 +│ │││││││└ +│ │││││││ @ abstractarray.jl:2989 within `_sub2ind_recurse` @ abstractarray.jl:2989 @ abstractarray.jl:2989 +│ │││││││┌ @ abstractarray.jl:2996 within `offsetin` +│ ││││││││┌ @ int.jl:86 within `-` +│ │││││││││ %629 = Base.sub_int(%574, 1)::Int64 +│ │││││││└└ +│ │││││││┌ @ int.jl:88 within `*` +│ ││││││││ %630 = Base.mul_int(%629, %625)::Int64 +│ │││││││└ +│ │││││││┌ @ int.jl:87 within `+` +│ ││││││││ %631 = Base.add_int(%628, %630)::Int64 +│ ││││└└└└ +│ ││││┌ @ indices.jl:510 within `getindex` +└────│││││ goto #147 if not false + │││││┌ @ abstractarray.jl:700 within `checkbounds` +143 ─││││││ %633 = Core.tuple(%631)::Tuple{Int64} +│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ ││││││┌ @ abstractarray.jl:388 within `eachindex` +│ │││││││┌ @ abstractarray.jl:315 within `length` +│ ││││││││┌ @ indices.jl:506 within `size` +│ │││││││││┌ @ tuple.jl:293 within `map` +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %634 = Base.getfield(%577, 1, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %635 = Base.getfield(%634, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %636 = Base.getfield(%577, 2, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %637 = Base.getfield(%636, :stop)::Int64 +│ ││││││││││└└ +│ ││││││││││┌ @ tuple.jl:31 within `getindex` +│ │││││││││││ %638 = Base.getfield(%577, 3, true)::Base.OneTo{Int64} +│ ││││││││││└ +│ ││││││││││┌ @ range.jl:779 within `length` +│ │││││││││││┌ @ Base.jl:37 within `getproperty` +│ ││││││││││││ %639 = Base.getfield(%638, :stop)::Int64 +│ ││││││││└└└└ +│ ││││││││┌ @ tuple.jl:595 within `prod` +│ │││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 +│ ││││││││││ %640 = Base.mul_int(%635, %637)::Int64 +│ ││││││││││ %641 = Base.mul_int(%640, %639)::Int64 +│ │││││││└└└ +│ │││││││┌ @ range.jl:469 within `oneto` +│ ││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ │││││││││┌ @ promotion.jl:532 within `max` +│ ││││││││││┌ @ int.jl:83 within `<` +│ │││││││││││ %642 = Base.slt_int(%641, 0)::Bool +│ ││││││││││└ +│ ││││││││││┌ @ essentials.jl:647 within `ifelse` +│ │││││││││││ %643 = Core.ifelse(%642, 0, %641)::Int64 +│ ││││││└└└└└ +│ ││││││┌ @ abstractarray.jl:763 within `checkindex` +│ │││││││┌ @ int.jl:86 within `-` +│ ││││││││ %644 = Base.sub_int(%631, 1)::Int64 +│ │││││││└ +│ │││││││┌ @ essentials.jl:524 within `unsigned` +│ ││││││││┌ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %645 = Base.bitcast(UInt64, %644)::UInt64 +│ │││││││││ @ essentials.jl:581 within `reinterpret` +│ │││││││││ %646 = Base.bitcast(UInt64, %643)::UInt64 +│ │││││││└└ +│ │││││││┌ @ int.jl:513 within `<` +│ ││││││││ %647 = Base.ult_int(%645, %646)::Bool +│ ││││││└└ +│ ││││││ @ abstractarray.jl:702 within `checkbounds` +└────││││││ goto #145 if not %647 +144 ─││││││ goto #146 +145 ─││││││ invoke Base.throw_boundserror(%578::LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %633::Tuple{Int64})::Union{} +└────││││││ unreachable +146 ─││││││ nothing::Nothing +147 ┄││││││ goto #148 +148 ─││││││ goto #149 +149 ─││││││ goto #150 +150 ─││││││ goto #151 + │└└└└└ + │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:14 within `macro expansion` + │┌ @ int.jl:85 within `-` +151 ─││ %657 = Base.neg_int(Nx)::Int64 +│ │└ +│ │┌ @ range.jl:5 within `Colon` +│ ││┌ @ range.jl:403 within `UnitRange` +│ │││┌ @ range.jl:414 within `unitrange_last` +│ ││││┌ @ operators.jl:425 within `>=` +│ │││││┌ @ int.jl:514 within `<=` +│ ││││││ %658 = Base.sle_int(%657, Nx)::Bool +│ ││││└└ +└────││││ goto #153 if not %658 +152 ─││││ goto #154 + ││││┌ @ int.jl:86 within `-` +153 ─│││││ %661 = Base.sub_int(%657, 1)::Int64 +└────│││││ goto #154 + │││└└ +154 ┄│││ %663 = φ (#152 => Nx, #153 => %661)::Int64 +└────│││ goto #155 +155 ─│││ goto #156 + │└└ + │┌ @ range.jl:897 within `iterate` + ││┌ @ range.jl:672 within `isempty` + │││┌ @ operators.jl:378 within `>` + ││││┌ @ int.jl:83 within `<` +156 ─│││││ %666 = Base.slt_int(%663, %657)::Bool +│ ││└└└ +└────││ goto #158 if not %666 +157 ─││ goto #159 +158 ─││ goto #159 + │└ +159 ┄│ %670 = φ (#157 => true, #158 => false)::Bool +│ │ %671 = φ (#158 => %657)::Int64 +│ │ %672 = Base.not_int(%670)::Bool +└────│ goto #179 if not %672 +160 ┄│ %674 = φ (#159 => %671, #178 => %712)::Int64 +│ │ %675 = φ (#159 => 0.0, #178 => %706)::Float64 +│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:15 within `macro expansion` +│ │┌ @ int.jl:85 within `-` +│ ││ %676 = Base.neg_int(Ny)::Int64 +│ │└ +│ │┌ @ range.jl:5 within `Colon` +│ ││┌ @ range.jl:403 within `UnitRange` +│ │││┌ @ range.jl:414 within `unitrange_last` +│ ││││┌ @ operators.jl:425 within `>=` +│ │││││┌ @ int.jl:514 within `<=` +│ ││││││ %677 = Base.sle_int(%676, Ny)::Bool +│ ││││└└ +└────││││ goto #162 if not %677 +161 ─││││ goto #163 + ││││┌ @ int.jl:86 within `-` +162 ─│││││ %680 = Base.sub_int(%676, 1)::Int64 +└────│││││ goto #163 + │││└└ +163 ┄│││ %682 = φ (#161 => Ny, #162 => %680)::Int64 +└────│││ goto #164 +164 ─│││ goto #165 + │└└ + │┌ @ range.jl:897 within `iterate` + ││┌ @ range.jl:672 within `isempty` + │││┌ @ operators.jl:378 within `>` + ││││┌ @ int.jl:83 within `<` +165 ─│││││ %685 = Base.slt_int(%682, %676)::Bool +│ ││└└└ +└────││ goto #167 if not %685 +166 ─││ goto #168 +167 ─││ goto #168 + │└ +168 ┄│ %689 = φ (#166 => true, #167 => false)::Bool +│ │ %690 = φ (#167 => %676)::Int64 +│ │ %691 = Base.not_int(%689)::Bool +└────│ goto #174 if not %691 +169 ┄│ %693 = φ (#168 => %675, #173 => %695)::Float64 +│ │ %694 = φ (#168 => %690, #173 => %701)::Int64 +│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:16 within `macro expansion` +│ │┌ @ float.jl:409 within `+` +│ ││ %695 = Base.add_float(%693, 2.0)::Float64 +│ │└ +│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:17 within `macro expansion` +│ │┌ @ range.jl:901 within `iterate` +│ ││┌ @ promotion.jl:521 within `==` +│ │││ %696 = (%694 === %682)::Bool +│ ││└ +└────││ goto #171 if not %696 +170 ─││ goto #172 + ││ @ range.jl:902 within `iterate` + ││┌ @ int.jl:87 within `+` +171 ─│││ %699 = Base.add_int(%694, 1)::Int64 +└────│││ goto #172 + │└└ +172 ┄│ %701 = φ (#171 => %699)::Int64 +│ │ %702 = φ (#170 => true, #171 => false)::Bool +│ │ %703 = Base.not_int(%702)::Bool +└────│ goto #174 if not %703 +173 ─│ goto #169 + │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:18 within `macro expansion` +174 ┄│ %706 = φ (#172 => %695, #168 => %675)::Float64 +│ │┌ @ range.jl:901 within `iterate` +│ ││┌ @ promotion.jl:521 within `==` +│ │││ %707 = (%674 === %663)::Bool +│ ││└ +└────││ goto #176 if not %707 +175 ─││ goto #177 + ││ @ range.jl:902 within `iterate` + ││┌ @ int.jl:87 within `+` +176 ─│││ %710 = Base.add_int(%674, 1)::Int64 +└────│││ goto #177 + │└└ +177 ┄│ %712 = φ (#176 => %710)::Int64 +│ │ %713 = φ (#175 => true, #176 => false)::Bool +│ │ %714 = Base.not_int(%713)::Bool +└────│ goto #179 if not %714 +178 ─│ goto #160 + │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:19 within `macro expansion` +179 ┄│ %717 = φ (#177 => %706, #159 => 0.0)::Float64 +│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:88 within `#setindex!` +└────││ goto #184 if not false + ││┌ @ abstractarray.jl:700 within `checkbounds` +180 ─│││ %719 = Core.tuple(%631)::Tuple{Int64} +│ │││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 +│ │││┌ @ abstractarray.jl:388 within `eachindex` +│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:69 within `length` +│ │││││┌ @ Base.jl:37 within `getproperty` +│ ││││││ %720 = Base.getfield(tensor, :len)::Int64 +│ ││││└└ +│ ││││┌ @ range.jl:469 within `oneto` +│ │││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 +│ ││││││┌ @ promotion.jl:532 within `max` +│ │││││││┌ @ int.jl:83 within `<` +│ ││││││││ %721 = Base.slt_int(%720, 0)::Bool +│ │││││││└ +│ │││││││┌ @ essentials.jl:647 within `ifelse` +│ ││││││││ %722 = Core.ifelse(%721, 0, %720)::Int64 +│ │││└└└└└ +│ │││┌ @ abstractarray.jl:763 within `checkindex` +│ ││││┌ @ int.jl:86 within `-` +│ │││││ %723 = Base.sub_int(%631, 1)::Int64 +│ ││││└ +│ ││││┌ @ essentials.jl:524 within `unsigned` +│ │││││┌ @ essentials.jl:581 within `reinterpret` +│ ││││││ %724 = Base.bitcast(UInt64, %723)::UInt64 +│ ││││││ @ essentials.jl:581 within `reinterpret` +│ ││││││ %725 = Base.bitcast(UInt64, %722)::UInt64 +│ ││││└└ +│ ││││┌ @ int.jl:513 within `<` +│ │││││ %726 = Base.ult_int(%724, %725)::Bool +│ │││└└ +│ │││ @ abstractarray.jl:702 within `checkbounds` +└────│││ goto #182 if not %726 +181 ─│││ goto #183 +182 ─│││ invoke Base.throw_boundserror(tensor::ROCDeviceArray{Float64, 3, 1}, %719::Tuple{Int64})::Union{} +└────│││ unreachable +183 ─│││ nothing::Nothing + ││└ + ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:90 within `#setindex!` + ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:63 within `pointer` + │││┌ @ Base.jl:37 within `getproperty` +184 ┄││││ %732 = Base.getfield(tensor, :ptr)::Core.LLVMPtr{Float64, 1} +│ ││└└ +│ ││┌ @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/pointer.jl:88 within `unsafe_store!` +│ │││┌ @ none within `pointerset` +│ ││││┌ @ none within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 +│ │││││ %733 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine void @entry(i8 addrspace(1)* %0, double %1, i64 %2) #0 {\nentry:\n %3 = bitcast i8 addrspace(1)* %0 to double addrspace(1)*\n %4 = getelementptr inbounds double, double addrspace(1)* %3, i64 %2\n store double %1, double addrspace(1)* %4, align 8, !tbaa !0\n ret void\n}\n\nattributes #0 = { alwaysinline }\n\n!0 = !{!1, !1, i64 0, i64 0}\n!1 = !{!\"custom_tbaa_addrspace(1)\", !2, i64 0}\n!2 = !{!\"custom_tbaa\"}\n", "entry")::Tuple{String, String} +│ │││││┌ @ int.jl:86 within `-` +│ ││││││ %734 = Base.sub_int(%631, 1)::Int64 +│ │││││└ +│ │││││ Base.llvmcall(%733, Nothing, Tuple{Core.LLVMPtr{Float64, 1}, Float64, Int64}, %732, %717, %734)::Nothing +│ ││└└└ +│ ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:91 within `#setindex!` +└────││ goto #185 +185 ─││ nothing::Nothing + └└ + @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:97 within `gpu_kernel_xx!` +186 ┄ return Main.nothing +) => Nothing diff --git a/devcode_size/gpu_kernel_xx!_1.unopt.ll b/devcode_size/gpu_kernel_xx!_1.unopt.ll new file mode 100644 index 000000000..eaafd4d63 --- /dev/null +++ b/devcode_size/gpu_kernel_xx!_1.unopt.ll @@ -0,0 +1,872 @@ +; ModuleID = 'start' +source_filename = "start" +target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7-ni:10:11:12:13" +target triple = "amdgcn-amd-amdhsa" + +@_j_const1 = private unnamed_addr addrspace(1) constant i32 1, align 4 + +declare {}*** @julia.get_pgcstack() local_unnamed_addr + +; Function Attrs: argmemonly nocallback nofree nounwind willreturn +declare void @llvm.memcpy.p5i8.p11i8.i64(i8 addrspace(5)* noalias nocapture writeonly, i8 addrspace(11)* noalias nocapture readonly, i64, i1 immarg) #0 + +; Function Attrs: cold noreturn nounwind +declare void @llvm.trap() #1 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.x() #2 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.y() #2 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workgroup.id.z() #2 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.x() #2 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.y() #2 + +; Function Attrs: nounwind readnone speculatable willreturn +declare i32 @llvm.amdgcn.workitem.id.z() #2 + +define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #3 { +conversion: + %5 = alloca { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, align 8, addrspace(5) + %6 = addrspacecast { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(5)* %5 to { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* + store { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, align 8 + %7 = alloca { [3 x i64], i8 addrspace(1)*, i64 }, align 8, addrspace(5) + %8 = addrspacecast { [3 x i64], i8 addrspace(1)*, i64 } addrspace(5)* %7 to { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* + store { [3 x i64], i8 addrspace(1)*, i64 } %1, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, align 8 + br label %top + +top: ; preds = %conversion + %9 = alloca [1 x i64], align 8, addrspace(5) + %10 = alloca [3 x i64], align 8, addrspace(5) + %11 = alloca [1 x i64], align 8, addrspace(5) + %12 = alloca [3 x i64], align 8, addrspace(5) + %13 = alloca [1 x i64], align 8, addrspace(5) + %14 = alloca [3 x i64], align 8, addrspace(5) + %15 = alloca [1 x i64], align 8, addrspace(5) + %16 = alloca [3 x i64], align 8, addrspace(5) + %17 = alloca [1 x [3 x [1 x i64]]], align 8, addrspace(5) + %18 = alloca [3 x i64], align 8, addrspace(5) + %19 = alloca [1 x i64], align 8, addrspace(5) + %20 = alloca [1 x i64], align 8, addrspace(5) + %21 = call {}*** @julia.get_pgcstack() + %22 = bitcast {}*** %21 to {}** + %current_task = getelementptr inbounds {}*, {}** %22, i64 -14 + %23 = bitcast {}** %current_task to i64* + %world_age = getelementptr inbounds i64, i64* %23, i64 15 + %24 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 + %25 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 + %26 = add i32 %25, 1 + %27 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 + %28 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 + %29 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 + %30 = add i32 %29, 1 + %31 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 + %32 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 + %33 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 0 + %34 = zext i32 %26 to i64 + br label %L40 + +L40: ; preds = %top + %35 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %33, i32 0, i32 0 + %36 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %35, i32 0, i32 0 + %37 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %36, i32 0, i32 0 + %38 = load i64, i64 addrspace(11)* %37, align 8, !alias.scope !9, !noalias !12 + %39 = icmp slt i64 %38, 0 + %40 = xor i1 %39, true + %41 = load i64, i64 addrspace(11)* %37, align 8, !alias.scope !9, !noalias !12 + %42 = select i1 %40, i64 %41, i64 0 + %43 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %35, i32 0, i32 1 + %44 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %43, i32 0, i32 0 + %45 = load i64, i64 addrspace(11)* %44, align 8, !alias.scope !9, !noalias !12 + %46 = icmp slt i64 %45, 0 + %47 = xor i1 %46, true + %48 = load i64, i64 addrspace(11)* %44, align 8, !alias.scope !9, !noalias !12 + %49 = select i1 %47, i64 %48, i64 0 + %50 = sub i64 %34, 1 + %51 = icmp ne i64 %50, -9223372036854775808 + %52 = icmp ne i64 %42, -1 + %53 = or i1 %52, %51 + %54 = icmp ne i64 %42, 0 + %55 = and i1 %54, %53 + br i1 %55, label %pass, label %fail + +L94: ; preds = %pass2 + %56 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %33, i32 0, i32 0 + %57 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %56, i32 0, i32 0 + br label %L105 + +L105: ; preds = %L94 + br label %L106 + +L106: ; preds = %L105 + br label %L107 + +L107: ; preds = %L106 + %58 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %56, i32 0, i32 1 + %59 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %56, i32 0, i32 2 + br label %L118 + +L118: ; preds = %L107 + br label %L119 + +L119: ; preds = %L118 + br label %L120 + +L120: ; preds = %L119 + br label %L129 + +L129: ; preds = %L120 + br label %L130 + +L130: ; preds = %L129 + br label %L131 + +L131: ; preds = %L130 + br label %L132 + +L132: ; preds = %L131 + br label %L133 + +L133: ; preds = %L132 + br label %L134 + +L134: ; preds = %L133 + br label %L135 + +L135: ; preds = %L134 + br label %L136 + +L136: ; preds = %L135 + %60 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 + %61 = zext i32 %30 to i64 + br label %L160 + +L160: ; preds = %L136 + %62 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %60, i32 0, i32 0 + %63 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %62, i32 0, i32 0 + %64 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %63, i32 0, i32 0 + %65 = load i64, i64 addrspace(11)* %64, align 8, !alias.scope !9, !noalias !12 + %66 = icmp slt i64 %65, 0 + %67 = xor i1 %66, true + %68 = load i64, i64 addrspace(11)* %64, align 8, !alias.scope !9, !noalias !12 + %69 = select i1 %67, i64 %68, i64 0 + %70 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %62, i32 0, i32 1 + %71 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %70, i32 0, i32 0 + %72 = load i64, i64 addrspace(11)* %71, align 8, !alias.scope !9, !noalias !12 + %73 = icmp slt i64 %72, 0 + %74 = xor i1 %73, true + %75 = load i64, i64 addrspace(11)* %71, align 8, !alias.scope !9, !noalias !12 + %76 = select i1 %74, i64 %75, i64 0 + %77 = sub i64 %61, 1 + %78 = icmp ne i64 %77, -9223372036854775808 + %79 = icmp ne i64 %69, -1 + %80 = or i1 %79, %78 + %81 = icmp ne i64 %69, 0 + %82 = and i1 %81, %80 + br i1 %82, label %pass4, label %fail3 + +L214: ; preds = %pass6 + %83 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %60, i32 0, i32 0 + %84 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %83, i32 0, i32 0 + br label %L225 + +L225: ; preds = %L214 + br label %L226 + +L226: ; preds = %L225 + br label %L227 + +L227: ; preds = %L226 + %85 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %83, i32 0, i32 1 + %86 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %83, i32 0, i32 2 + br label %L238 + +L238: ; preds = %L227 + br label %L239 + +L239: ; preds = %L238 + br label %L240 + +L240: ; preds = %L239 + br label %L249 + +L249: ; preds = %L240 + br label %L250 + +L250: ; preds = %L249 + br label %L251 + +L251: ; preds = %L250 + br label %L252 + +L252: ; preds = %L251 + br label %L253 + +L253: ; preds = %L252 + br label %L254 + +L254: ; preds = %L253 + br label %L255 + +L255: ; preds = %L254 + br label %L256 + +L256: ; preds = %L255 + %87 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 + %88 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %87, i32 0, i32 0 + %89 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %88, i32 0, i32 0 + %90 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %89, i32 0, i32 0 + %91 = sub i64 %290, 1 + %92 = load i64, i64 addrspace(11)* %90, align 8, !alias.scope !9, !noalias !12 + %93 = mul i64 %91, %92 + %94 = add i64 %93, %304 + %95 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 + %96 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %95, i32 0, i32 0 + %97 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %96, i32 0, i32 1 + %98 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %97, i32 0, i32 0 + %99 = sub i64 %299, 1 + %100 = load i64, i64 addrspace(11)* %98, align 8, !alias.scope !9, !noalias !12 + %101 = mul i64 %99, %100 + %102 = add i64 %101, %313 + %103 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 + %104 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %103, i32 0, i32 0 + %105 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %104, i32 0, i32 2 + %106 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %105, i32 0, i32 0 + %107 = sub i64 %300, 1 + %108 = load i64, i64 addrspace(11)* %106, align 8, !alias.scope !9, !noalias !12 + %109 = mul i64 %107, %108 + %110 = add i64 %109, %314 + br label %L278 + +L278: ; preds = %L256 + %111 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 + %112 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %111, i32 0, i32 0 + %113 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %112, i32 0, i32 0 + %114 = icmp sle i64 1, %94 + %115 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %113, i32 0, i32 0 + %116 = load i64, i64 addrspace(11)* %115, align 8, !alias.scope !9, !noalias !12 + %117 = icmp sle i64 %94, %116 + %118 = and i1 %114, %117 + %119 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %112, i32 0, i32 1 + %120 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %112, i32 0, i32 2 + %121 = icmp sle i64 1, %102 + %122 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %119, i32 0, i32 0 + %123 = load i64, i64 addrspace(11)* %122, align 8, !alias.scope !9, !noalias !12 + %124 = icmp sle i64 %102, %123 + %125 = and i1 %121, %124 + %126 = icmp sle i64 1, %110 + %127 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %120, i32 0, i32 0 + %128 = load i64, i64 addrspace(11)* %127, align 8, !alias.scope !9, !noalias !12 + %129 = icmp sle i64 %110, %128 + %130 = and i1 %126, %129 + %131 = and i1 %118, %125 + %132 = and i1 %131, %130 + br label %L298 + +L298: ; preds = %L278 + %133 = xor i1 %132, true + br i1 %133, label %L738, label %L299 + +L299: ; preds = %L298 + %134 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 + %135 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 + %136 = add i32 %135, 1 + %137 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 + %138 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 + %139 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 + %140 = add i32 %139, 1 + %141 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 + %142 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 + %143 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 0 + %144 = zext i32 %136 to i64 + br label %L338 + +L338: ; preds = %L299 + %145 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %143, i32 0, i32 0 + %146 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %145, i32 0, i32 0 + %147 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %146, i32 0, i32 0 + %148 = load i64, i64 addrspace(11)* %147, align 8, !alias.scope !9, !noalias !12 + %149 = icmp slt i64 %148, 0 + %150 = xor i1 %149, true + %151 = load i64, i64 addrspace(11)* %147, align 8, !alias.scope !9, !noalias !12 + %152 = select i1 %150, i64 %151, i64 0 + %153 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %145, i32 0, i32 1 + %154 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %153, i32 0, i32 0 + %155 = load i64, i64 addrspace(11)* %154, align 8, !alias.scope !9, !noalias !12 + %156 = icmp slt i64 %155, 0 + %157 = xor i1 %156, true + %158 = load i64, i64 addrspace(11)* %154, align 8, !alias.scope !9, !noalias !12 + %159 = select i1 %157, i64 %158, i64 0 + %160 = sub i64 %144, 1 + %161 = icmp ne i64 %160, -9223372036854775808 + %162 = icmp ne i64 %152, -1 + %163 = or i1 %162, %161 + %164 = icmp ne i64 %152, 0 + %165 = and i1 %164, %163 + br i1 %165, label %pass8, label %fail7 + +L392: ; preds = %pass10 + %166 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %143, i32 0, i32 0 + %167 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %166, i32 0, i32 0 + br label %L403 + +L403: ; preds = %L392 + br label %L404 + +L404: ; preds = %L403 + br label %L405 + +L405: ; preds = %L404 + %168 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %166, i32 0, i32 1 + %169 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %166, i32 0, i32 2 + br label %L416 + +L416: ; preds = %L405 + br label %L417 + +L417: ; preds = %L416 + br label %L418 + +L418: ; preds = %L417 + br label %L427 + +L427: ; preds = %L418 + br label %L428 + +L428: ; preds = %L427 + br label %L429 + +L429: ; preds = %L428 + br label %L430 + +L430: ; preds = %L429 + br label %L431 + +L431: ; preds = %L430 + br label %L432 + +L432: ; preds = %L431 + br label %L433 + +L433: ; preds = %L432 + br label %L434 + +L434: ; preds = %L433 + %170 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 + %171 = zext i32 %140 to i64 + br label %L458 + +L458: ; preds = %L434 + %172 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %170, i32 0, i32 0 + %173 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %172, i32 0, i32 0 + %174 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %173, i32 0, i32 0 + %175 = load i64, i64 addrspace(11)* %174, align 8, !alias.scope !9, !noalias !12 + %176 = icmp slt i64 %175, 0 + %177 = xor i1 %176, true + %178 = load i64, i64 addrspace(11)* %174, align 8, !alias.scope !9, !noalias !12 + %179 = select i1 %177, i64 %178, i64 0 + %180 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %172, i32 0, i32 1 + %181 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %180, i32 0, i32 0 + %182 = load i64, i64 addrspace(11)* %181, align 8, !alias.scope !9, !noalias !12 + %183 = icmp slt i64 %182, 0 + %184 = xor i1 %183, true + %185 = load i64, i64 addrspace(11)* %181, align 8, !alias.scope !9, !noalias !12 + %186 = select i1 %184, i64 %185, i64 0 + %187 = sub i64 %171, 1 + %188 = icmp ne i64 %187, -9223372036854775808 + %189 = icmp ne i64 %179, -1 + %190 = or i1 %189, %188 + %191 = icmp ne i64 %179, 0 + %192 = and i1 %191, %190 + br i1 %192, label %pass12, label %fail11 + +L512: ; preds = %pass14 + %193 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %170, i32 0, i32 0 + %194 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %193, i32 0, i32 0 + br label %L523 + +L523: ; preds = %L512 + br label %L524 + +L524: ; preds = %L523 + br label %L525 + +L525: ; preds = %L524 + %195 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %193, i32 0, i32 1 + %196 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %193, i32 0, i32 2 + br label %L536 + +L536: ; preds = %L525 + br label %L537 + +L537: ; preds = %L536 + br label %L538 + +L538: ; preds = %L537 + br label %L547 + +L547: ; preds = %L538 + br label %L548 + +L548: ; preds = %L547 + br label %L549 + +L549: ; preds = %L548 + br label %L550 + +L550: ; preds = %L549 + br label %L551 + +L551: ; preds = %L550 + br label %L552 + +L552: ; preds = %L551 + br label %L553 + +L553: ; preds = %L552 + br label %L554 + +L554: ; preds = %L553 + %197 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 + %198 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %197, i32 0, i32 0 + %199 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %198, i32 0, i32 0 + %200 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %199, i32 0, i32 0 + %201 = sub i64 %318, 1 + %202 = load i64, i64 addrspace(11)* %200, align 8, !alias.scope !9, !noalias !12 + %203 = mul i64 %201, %202 + %204 = add i64 %203, %332 + %205 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 + %206 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %205, i32 0, i32 0 + %207 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %206, i32 0, i32 1 + %208 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %207, i32 0, i32 0 + %209 = sub i64 %327, 1 + %210 = load i64, i64 addrspace(11)* %208, align 8, !alias.scope !9, !noalias !12 + %211 = mul i64 %209, %210 + %212 = add i64 %211, %341 + %213 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 + %214 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %213, i32 0, i32 0 + %215 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %214, i32 0, i32 2 + %216 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %215, i32 0, i32 0 + %217 = sub i64 %328, 1 + %218 = load i64, i64 addrspace(11)* %216, align 8, !alias.scope !9, !noalias !12 + %219 = mul i64 %217, %218 + %220 = add i64 %219, %342 + br label %L576 + +L576: ; preds = %L554 + %221 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 + %222 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %221, i32 0, i32 0 + %223 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(5)* %17, i32 0, i32 0 + %224 = bitcast [3 x [1 x i64]] addrspace(5)* %223 to i8 addrspace(5)* + %225 = bitcast [3 x [1 x i64]] addrspace(11)* %222 to i8 addrspace(11)* + call void @llvm.memcpy.p5i8.p11i8.i64(i8 addrspace(5)* align 8 %224, i8 addrspace(11)* %225, i64 24, i1 false), !alias.scope !17, !noalias !18 + br label %L613 + +L613: ; preds = %L576 + %226 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %222, i32 0, i32 0 + %227 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %226, i32 0, i32 0 + %228 = load i64, i64 addrspace(11)* %227, align 8, !alias.scope !9, !noalias !12 + %229 = icmp slt i64 %228, 0 + %230 = xor i1 %229, true + %231 = load i64, i64 addrspace(11)* %227, align 8, !alias.scope !9, !noalias !12 + %232 = select i1 %230, i64 %231, i64 0 + %233 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %222, i32 0, i32 1 + %234 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %233, i32 0, i32 0 + %235 = load i64, i64 addrspace(11)* %234, align 8, !alias.scope !9, !noalias !12 + %236 = icmp slt i64 %235, 0 + %237 = xor i1 %236, true + %238 = load i64, i64 addrspace(11)* %234, align 8, !alias.scope !9, !noalias !12 + %239 = select i1 %237, i64 %238, i64 0 + %240 = mul i64 1, %232 + %241 = sub i64 %204, 1 + %242 = mul i64 %241, 1 + %243 = add i64 1, %242 + %244 = mul i64 %240, %239 + %245 = sub i64 %212, 1 + %246 = mul i64 %245, %240 + %247 = add i64 %243, %246 + %248 = sub i64 %220, 1 + %249 = mul i64 %248, %244 + %250 = add i64 %247, %249 + br label %L653 + +L653: ; preds = %L613 + br label %L654 + +L654: ; preds = %L653 + br label %L655 + +L655: ; preds = %L654 + br label %L656 + +L656: ; preds = %L655 + br label %L657 + +L657: ; preds = %L656 + %251 = sub i64 0, %2 + %252 = icmp sle i64 %251, %2 + %253 = xor i1 %252, true + br i1 %253, label %L661, label %L660 + +L660: ; preds = %L657 + br label %L663 + +L661: ; preds = %L657 + %254 = sub i64 %251, 1 + br label %L663 + +L663: ; preds = %L661, %L660 + %value_phi = phi i64 [ %2, %L660 ], [ %254, %L661 ] + br label %L665 + +L665: ; preds = %L663 + br label %L666 + +L666: ; preds = %L665 + %255 = icmp slt i64 %value_phi, %251 + %256 = xor i1 %255, true + br i1 %256, label %L669, label %L668 + +L668: ; preds = %L666 + br label %L670 + +L669: ; preds = %L666 + br label %L670 + +L670: ; preds = %L669, %L668 + %value_phi15 = phi i8 [ 1, %L668 ], [ 0, %L669 ] + %value_phi16 = phi i64 [ %251, %L669 ], [ undef, %L668 ] + %257 = trunc i8 %value_phi15 to i1 + %258 = xor i1 %257, true + %259 = xor i1 %258, true + br i1 %259, label %L670.L717_crit_edge, label %L670.L674_crit_edge + +L670.L717_crit_edge: ; preds = %L670 + br label %L717 + +L670.L674_crit_edge: ; preds = %L670 + br label %L674 + +L674: ; preds = %L716, %L670.L674_crit_edge + %value_phi17 = phi i64 [ %value_phi16, %L670.L674_crit_edge ], [ %value_phi27, %L716 ] + %value_phi18 = phi double [ 0.000000e+00, %L670.L674_crit_edge ], [ %value_phi26, %L716 ] + %260 = sub i64 0, %3 + %261 = icmp sle i64 %260, %3 + %262 = xor i1 %261, true + br i1 %262, label %L680, label %L679 + +L679: ; preds = %L674 + br label %L682 + +L680: ; preds = %L674 + %263 = sub i64 %260, 1 + br label %L682 + +L682: ; preds = %L680, %L679 + %value_phi19 = phi i64 [ %3, %L679 ], [ %263, %L680 ] + br label %L684 + +L684: ; preds = %L682 + br label %L685 + +L685: ; preds = %L684 + %264 = icmp slt i64 %value_phi19, %260 + %265 = xor i1 %264, true + br i1 %265, label %L688, label %L687 + +L687: ; preds = %L685 + br label %L689 + +L688: ; preds = %L685 + br label %L689 + +L689: ; preds = %L688, %L687 + %value_phi20 = phi i8 [ 1, %L687 ], [ 0, %L688 ] + %value_phi21 = phi i64 [ %260, %L688 ], [ undef, %L687 ] + %266 = trunc i8 %value_phi20 to i1 + %267 = xor i1 %266, true + %268 = xor i1 %267, true + br i1 %268, label %L689.L706_crit_edge, label %L689.L693_crit_edge + +L689.L706_crit_edge: ; preds = %L689 + br label %L706 + +L689.L693_crit_edge: ; preds = %L689 + br label %L693 + +L693: ; preds = %L705, %L689.L693_crit_edge + %value_phi22 = phi double [ %value_phi18, %L689.L693_crit_edge ], [ %269, %L705 ] + %value_phi23 = phi i64 [ %value_phi21, %L689.L693_crit_edge ], [ %value_phi24, %L705 ] + %269 = fadd double %value_phi22, 2.000000e+00 + %270 = icmp eq i64 %value_phi23, %value_phi19 + %271 = xor i1 %270, true + br i1 %271, label %L699, label %L698 + +L698: ; preds = %L693 + br label %L701 + +L699: ; preds = %L693 + %272 = add i64 %value_phi23, 1 + br label %L701 + +L701: ; preds = %L699, %L698 + %value_phi24 = phi i64 [ %272, %L699 ], [ undef, %L698 ] + %value_phi25 = phi i8 [ 1, %L698 ], [ 0, %L699 ] + %273 = trunc i8 %value_phi25 to i1 + %274 = xor i1 %273, true + %275 = xor i1 %274, true + br i1 %275, label %L701.L706_crit_edge, label %L705 + +L701.L706_crit_edge: ; preds = %L701 + br label %L706 + +L705: ; preds = %L701 + br label %L693 + +L706: ; preds = %L701.L706_crit_edge, %L689.L706_crit_edge + %value_phi26 = phi double [ %269, %L701.L706_crit_edge ], [ %value_phi18, %L689.L706_crit_edge ] + %276 = icmp eq i64 %value_phi17, %value_phi + %277 = xor i1 %276, true + br i1 %277, label %L710, label %L709 + +L709: ; preds = %L706 + br label %L712 + +L710: ; preds = %L706 + %278 = add i64 %value_phi17, 1 + br label %L712 + +L712: ; preds = %L710, %L709 + %value_phi27 = phi i64 [ %278, %L710 ], [ undef, %L709 ] + %value_phi28 = phi i8 [ 1, %L709 ], [ 0, %L710 ] + %279 = trunc i8 %value_phi28 to i1 + %280 = xor i1 %279, true + %281 = xor i1 %280, true + br i1 %281, label %L712.L717_crit_edge, label %L716 + +L712.L717_crit_edge: ; preds = %L712 + br label %L717 + +L716: ; preds = %L712 + br label %L674 + +L717: ; preds = %L712.L717_crit_edge, %L670.L717_crit_edge + %value_phi29 = phi double [ %value_phi26, %L712.L717_crit_edge ], [ 0.000000e+00, %L670.L717_crit_edge ] + br label %L732 + +L732: ; preds = %L717 + %282 = getelementptr inbounds { [3 x i64], i8 addrspace(1)*, i64 }, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, i32 0, i32 1 + %283 = sub i64 %250, 1 + %284 = load i8 addrspace(1)*, i8 addrspace(1)* addrspace(11)* %282, align 8, !alias.scope !9, !noalias !12 + %285 = bitcast i8 addrspace(1)* %284 to double addrspace(1)* + %286 = getelementptr inbounds double, double addrspace(1)* %285, i64 %283 + store double %value_phi29, double addrspace(1)* %286, align 8, !tbaa !19 + br label %L737 + +L737: ; preds = %L732 + br label %L738 + +L738: ; preds = %L737, %L298 + ret void + +fail: ; preds = %L40 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass: ; preds = %L40 + %287 = sdiv i64 %50, %42 + %288 = mul i64 %42, %287 + %289 = sub i64 %50, %288 + %290 = add i64 %289, 1 + %291 = icmp ne i64 %287, -9223372036854775808 + %292 = icmp ne i64 %49, -1 + %293 = or i1 %292, %291 + %294 = icmp ne i64 %49, 0 + %295 = and i1 %294, %293 + br i1 %295, label %pass2, label %fail1 + +fail1: ; preds = %pass + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass2: ; preds = %pass + %296 = sdiv i64 %287, %49 + %297 = mul i64 %49, %296 + %298 = sub i64 %287, %297 + %299 = add i64 %298, 1 + %300 = add i64 %296, 1 + br label %L94 + +fail3: ; preds = %L160 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass4: ; preds = %L160 + %301 = sdiv i64 %77, %69 + %302 = mul i64 %69, %301 + %303 = sub i64 %77, %302 + %304 = add i64 %303, 1 + %305 = icmp ne i64 %301, -9223372036854775808 + %306 = icmp ne i64 %76, -1 + %307 = or i1 %306, %305 + %308 = icmp ne i64 %76, 0 + %309 = and i1 %308, %307 + br i1 %309, label %pass6, label %fail5 + +fail5: ; preds = %pass4 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass6: ; preds = %pass4 + %310 = sdiv i64 %301, %76 + %311 = mul i64 %76, %310 + %312 = sub i64 %301, %311 + %313 = add i64 %312, 1 + %314 = add i64 %310, 1 + br label %L214 + +fail7: ; preds = %L338 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass8: ; preds = %L338 + %315 = sdiv i64 %160, %152 + %316 = mul i64 %152, %315 + %317 = sub i64 %160, %316 + %318 = add i64 %317, 1 + %319 = icmp ne i64 %315, -9223372036854775808 + %320 = icmp ne i64 %159, -1 + %321 = or i1 %320, %319 + %322 = icmp ne i64 %159, 0 + %323 = and i1 %322, %321 + br i1 %323, label %pass10, label %fail9 + +fail9: ; preds = %pass8 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass10: ; preds = %pass8 + %324 = sdiv i64 %315, %159 + %325 = mul i64 %159, %324 + %326 = sub i64 %315, %325 + %327 = add i64 %326, 1 + %328 = add i64 %324, 1 + br label %L392 + +fail11: ; preds = %L458 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass12: ; preds = %L458 + %329 = sdiv i64 %187, %179 + %330 = mul i64 %179, %329 + %331 = sub i64 %187, %330 + %332 = add i64 %331, 1 + %333 = icmp ne i64 %329, -9223372036854775808 + %334 = icmp ne i64 %186, -1 + %335 = or i1 %334, %333 + %336 = icmp ne i64 %186, 0 + %337 = and i1 %336, %335 + br i1 %337, label %pass14, label %fail13 + +fail13: ; preds = %pass12 + call fastcc void @gpu_signal_exception() + call void @llvm.trap() + unreachable + +pass14: ; preds = %pass12 + %338 = sdiv i64 %329, %186 + %339 = mul i64 %186, %338 + %340 = sub i64 %329, %339 + %341 = add i64 %340, 1 + %342 = add i64 %338, 1 + br label %L512 +} + +; Function Attrs: alwaysinline +define internal fastcc void @gpu_signal_exception() unnamed_addr #4 { +top: + %0 = alloca { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, align 8, addrspace(5) + %1 = call {}*** @julia.get_pgcstack() + %2 = bitcast {}*** %1 to {}** + %current_task = getelementptr inbounds {}*, {}** %2, i64 -14 + %3 = bitcast {}** %current_task to i64* + %world_age = getelementptr inbounds i64, i64* %3, i64 15 + %state.i = call { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } @julia.gpu.state_getter() + store { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state.i, { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } addrspace(5)* %0, align 8 + %4 = getelementptr inbounds { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } addrspace(5)* %0, i32 0, i32 0 + %5 = bitcast i64 addrspace(5)* %4 to i8* addrspace(5)* + %6 = load i8*, i8* addrspace(5)* %5, align 8, !tbaa !22, !alias.scope !26, !noalias !27 + %7 = getelementptr inbounds i8, i8* %6, i64 0 + %8 = bitcast i8* %7 to i32* + %9 = load i32, i32 addrspace(1)* @_j_const1, align 1, !tbaa !28, !alias.scope !32, !noalias !33 + store i32 %9, i32* %8, align 1 + call void @llvm.amdgcn.endpgm() + unreachable +} + +; Function Attrs: readnone +declare { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } @julia.gpu.state_getter() local_unnamed_addr #5 + +; Function Attrs: cold noreturn nounwind +declare void @llvm.amdgcn.endpgm() #1 + +attributes #0 = { argmemonly nocallback nofree nounwind willreturn } +attributes #1 = { cold noreturn nounwind } +attributes #2 = { nounwind readnone speculatable willreturn } +attributes #3 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } +attributes #4 = { alwaysinline } +attributes #5 = { readnone } + +!llvm.module.flags = !{!0, !1, !2, !3} +!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} +!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} +!julia.kernel = !{!6} + +!0 = !{i32 2, !"Dwarf Version", i32 4} +!1 = !{i32 2, !"Debug Info Version", i32 3} +!2 = !{i32 1, !"wchar_size", i32 4} +!3 = !{i32 7, !"PIC Level", i32 1} +!4 = !{i32 2, i32 0} +!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} +!6 = !{void ({ [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} +!7 = !{i32 0, i32 -2} +!8 = !{i32 0, i32 1023} +!9 = !{!10} +!10 = !{!"jnoalias_const", !11} +!11 = !{!"jnoalias"} +!12 = !{!13, !14, !15, !16} +!13 = !{!"jnoalias_gcframe", !11} +!14 = !{!"jnoalias_stack", !11} +!15 = !{!"jnoalias_data", !11} +!16 = !{!"jnoalias_typemd", !11} +!17 = !{!10, !14} +!18 = !{!13, !15, !16} +!19 = !{!20, !20, i64 0, i64 0} +!20 = !{!"custom_tbaa_addrspace(1)", !21, i64 0} +!21 = !{!"custom_tbaa"} +!22 = !{!23, !23, i64 0} +!23 = !{!"jtbaa_stack", !24, i64 0} +!24 = !{!"jtbaa", !25, i64 0} +!25 = !{!"jtbaa"} +!26 = !{!14} +!27 = !{!13, !15, !16, !10} +!28 = !{!29, !29, i64 0} +!29 = !{!"jtbaa_immut", !30, i64 0} +!30 = !{!"jtbaa_value", !31, i64 0} +!31 = !{!"jtbaa_data", !24, i64 0} +!32 = !{!15} +!33 = !{!13, !14, !16, !10} diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl index 525e3aa88..4adc86291 100644 --- a/ext/EnzymeCoreExt/EnzymeCoreExt.jl +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -141,4 +141,76 @@ function EnzymeRules.augmented_primal( primal, shadow, nothing) end +function meta_augf( + f, tape::ROCDeviceArray{TapeType}, ::Val{ModifiedBetween}, args::Vararg{Any, N}, +) where {N, ModifiedBetween, TapeType} + forward, _ = EnzymeCore.autodiff_deferred_thunk( + ReverseSplitModified(ReverseSplitWithPrimal, Val(ModifiedBetween)), + TapeType, + Const{Core.Typeof(f)}, + Const{Nothing}, + map(typeof, args)..., + ) + + idx = 0 + # idx *= gridDim().x + idx += workgroupIdx().x - 1 + + idx *= gridGroupDim().y + idx += workgroupIdx().y - 1 + + idx *= gridGroupDim().z + idx += workgroupIdx().z - 1 + + idx *= workgroupDim().x + idx += workitemIdx().x - 1 + + idx *= workgroupDim().y + idx += workitemIdx().y - 1 + + idx *= workgroupDim().z + idx += workitemIdx().z - 1 + idx += 1 + + @inbounds tape[idx] = forward(Const(f), args...)[1] + return +end + +function EnzymeRules.augmented_primal( + config, fn::EnzymeCore.Annotation{AMDGPU.Runtime.HIPKernel{F,TT}}, + ::Type{Const{Nothing}}, args...; + groupsize::AMDGPU.Runtime.ROCDim = 1, + gridsize::AMDGPU.Runtime.ROCDim = 1, kwargs..., +) where {F,TT} + kernel_args = ((rocconvert(a) for a in args)...,) + kernel_tt = map(typeof, kernel_args) + + ModifiedBetween = overwritten(config) + compiler_job = EnzymeCore.compiler_job_from_backend( + ROCBackend(), typeof(Base.identity), Tuple{Float64}) + TapeType = EnzymeCore.tape_type( + compiler_job, + ReverseSplitModified(ReverseSplitWithPrimal, Val(ModifiedBetween)), + Const{F}, Const{Nothing}, + kernel_tt..., + ) + threads = AMDGPU.Runtime.ROCDim3(groupsize) + blocks = AMDGPU.Runtime.ROCDim3(gridsize) + subtape = ROCArray{TapeType}( + undef, blocks.x * blocks.y * blocks.z * threads.x * threads.y * threads.z) + + GC.@preserve args subtape begin + subtape_cc = rocconvert(subtape) + kernel_tt2 = Tuple{( + F, typeof(subtape_cc), Val{ModifiedBetween}, kernel_tt..., + )...} + kernel = AMDGPU.hipfunction(meta_augf, kernel_tt2) + kernel(fn.val.f, subtape_cc, Val(ModifiedBetween), args...; + groupsize=(groupsize.x, groupsize.y, groupsize.z), + gridsize=(gridsize.x, gridsize.y, gridsize.z), + kwargs...) + end + return AugmentedReturn{Nothing, Nothing, ROCArray}(nothing, nothing, subtape) +end + end diff --git a/t.jl b/t.jl index a83e39874..90544aa7f 100644 --- a/t.jl +++ b/t.jl @@ -15,7 +15,7 @@ end function main() A = ROCArray(collect(1.0:64.0)) dA = ROCArray(ones(Float64, 64)) - Enzyme.autodiff(Forward, square!, Duplicated(A, dA)) + Enzyme.autodiff(Reverse, square!, Duplicated(A, dA)) @show A @show dA @assert all(dA .≈ (2:2:128)) From f2daeae324cdf031a5e7fce605aae0f868fcffff Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Thu, 5 Sep 2024 20:20:27 +0300 Subject: [PATCH 09/10] Cleanup --- devcode_linear/gpu_kernel_xx!_1.asm | 428 ---- devcode_linear/gpu_kernel_xx!_1.lowered.jl | 46 - devcode_linear/gpu_kernel_xx!_1.opt.ll | 96 - devcode_linear/gpu_kernel_xx!_1.typed.jl | 842 ------- devcode_linear/gpu_kernel_xx!_1.unopt.ll | 440 ---- devcode_size/gpu_kernel_xx!_1.asm | 809 ------- devcode_size/gpu_kernel_xx!_1.lowered.jl | 46 - devcode_size/gpu_kernel_xx!_1.opt.ll | 195 -- devcode_size/gpu_kernel_xx!_1.typed.jl | 2303 -------------------- devcode_size/gpu_kernel_xx!_1.unopt.ll | 872 -------- 10 files changed, 6077 deletions(-) delete mode 100644 devcode_linear/gpu_kernel_xx!_1.asm delete mode 100644 devcode_linear/gpu_kernel_xx!_1.lowered.jl delete mode 100644 devcode_linear/gpu_kernel_xx!_1.opt.ll delete mode 100644 devcode_linear/gpu_kernel_xx!_1.typed.jl delete mode 100644 devcode_linear/gpu_kernel_xx!_1.unopt.ll delete mode 100644 devcode_size/gpu_kernel_xx!_1.asm delete mode 100644 devcode_size/gpu_kernel_xx!_1.lowered.jl delete mode 100644 devcode_size/gpu_kernel_xx!_1.opt.ll delete mode 100644 devcode_size/gpu_kernel_xx!_1.typed.jl delete mode 100644 devcode_size/gpu_kernel_xx!_1.unopt.ll diff --git a/devcode_linear/gpu_kernel_xx!_1.asm b/devcode_linear/gpu_kernel_xx!_1.asm deleted file mode 100644 index d42515a53..000000000 --- a/devcode_linear/gpu_kernel_xx!_1.asm +++ /dev/null @@ -1,428 +0,0 @@ - .text - .amdgcn_target "amdgcn-amd-amdhsa--gfx1100" - .globl _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ ; -- Begin function _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - .p2align 8 - .type _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_,@function -_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_: ; @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ -; %bb.0: ; %conversion - s_clause 0x1 - s_load_b64 s[2:3], s[0:1], 0x68 - s_load_b64 s[4:5], s[0:1], 0x58 - v_add_nc_u32_e32 v1, 1, v0 - s_waitcnt lgkmcnt(0) - s_mul_i32 s3, s3, s15 - s_mul_hi_u32 s6, s2, s15 - s_mul_i32 s8, s2, s15 - s_add_i32 s3, s6, s3 - v_add_co_u32 v1, s2, s8, v1 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_co_ci_u32_e64 v2, null, s3, 0, s2 - v_cmp_lt_i64_e32 vcc_lo, 0, v[1:2] - v_cmp_ge_i64_e64 s2, s[4:5], v[1:2] - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) - s_and_b32 s2, vcc_lo, s2 - s_and_saveexec_b32 s4, s2 - s_cbranch_execz .LBB0_8 -; %bb.1: ; %L103 - s_clause 0x1 - s_load_b128 s[4:7], s[0:1], 0x98 - s_load_b64 s[0:1], s[0:1], 0x88 - v_mov_b32_e32 v3, 0 - v_mov_b32_e32 v4, 0 - s_waitcnt lgkmcnt(0) - s_sub_u32 s10, 0, s4 - s_subb_u32 s11, 0, s5 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_cmp_gt_i64_e64 s2, s[10:11], s[4:5] - v_cndmask_b32_e64 v2, 0, -1, s2 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1) - v_xor_b32_e32 v1, s4, v2 - v_xor_b32_e32 v2, s5, v2 - v_cmp_gt_i64_e32 vcc_lo, s[10:11], v[1:2] - s_cbranch_vccnz .LBB0_7 -; %bb.2: ; %L235.preheader - s_sub_u32 s4, 0, s6 - s_subb_u32 s5, 0, s7 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_cmp_gt_i64_e64 s2, s[4:5], s[6:7] - v_cndmask_b32_e64 v3, 0, -1, s2 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3) - v_readfirstlane_b32 s12, v3 - v_mov_b32_e32 v3, 0 - v_mov_b32_e32 v4, 0 - s_mov_b32 s13, s12 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) - s_xor_b64 s[12:13], s[12:13], s[6:7] - v_cmp_ge_i64_e64 s2, s[12:13], s[4:5] - s_add_u32 s6, s12, s6 - s_addc_u32 s5, s13, s7 - s_add_u32 s4, s6, 1 - s_addc_u32 s5, s5, 0 - s_branch .LBB0_4 -.LBB0_3: ; %L267 - ; in Loop: Header=BB0_4 Depth=1 - v_cmp_ne_u64_e32 vcc_lo, s[10:11], v[1:2] - s_add_u32 s10, s10, 1 - s_addc_u32 s11, s11, 0 - s_cbranch_vccz .LBB0_7 -.LBB0_4: ; %L235 - ; =>This Loop Header: Depth=1 - ; Child Loop BB0_6 Depth 2 - s_and_not1_b32 vcc_lo, exec_lo, s2 - s_cbranch_vccnz .LBB0_3 -; %bb.5: ; %L254.preheader - ; in Loop: Header=BB0_4 Depth=1 - s_mov_b64 s[6:7], s[4:5] -.LBB0_6: ; %L254 - ; Parent Loop BB0_4 Depth=1 - ; => This Inner Loop Header: Depth=2 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) - v_add_f64 v[3:4], v[3:4], 2.0 - s_add_u32 s6, s6, -1 - s_addc_u32 s7, s7, -1 - s_cmp_lg_u64 s[6:7], 0 - s_cbranch_scc1 .LBB0_6 - s_branch .LBB0_3 -.LBB0_7: ; %L293 - v_add_co_u32 v0, s2, v0, s8 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_co_ci_u32_e64 v1, null, 0, s3, s2 - v_lshlrev_b64 v[0:1], 3, v[0:1] - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) - v_add_co_u32 v0, vcc_lo, v0, s0 - v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo - global_store_b64 v[0:1], v[3:4], off -.LBB0_8: ; %L299 - s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) - s_endpgm - .section .rodata,#alloc - .p2align 6 - .amdhsa_kernel _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - .amdhsa_group_segment_fixed_size 0 - .amdhsa_private_segment_fixed_size 0 - .amdhsa_kernarg_size 176 - .amdhsa_user_sgpr_count 15 - .amdhsa_user_sgpr_dispatch_ptr 0 - .amdhsa_user_sgpr_queue_ptr 0 - .amdhsa_user_sgpr_kernarg_segment_ptr 1 - .amdhsa_user_sgpr_dispatch_id 0 - .amdhsa_user_sgpr_private_segment_size 0 - .amdhsa_wavefront_size32 1 - .amdhsa_uses_dynamic_stack 0 - .amdhsa_enable_private_segment 0 - .amdhsa_system_sgpr_workgroup_id_x 1 - .amdhsa_system_sgpr_workgroup_id_y 0 - .amdhsa_system_sgpr_workgroup_id_z 0 - .amdhsa_system_sgpr_workgroup_info 0 - .amdhsa_system_vgpr_workitem_id 0 - .amdhsa_next_free_vgpr 5 - .amdhsa_next_free_sgpr 16 - .amdhsa_float_round_mode_32 0 - .amdhsa_float_round_mode_16_64 0 - .amdhsa_float_denorm_mode_32 3 - .amdhsa_float_denorm_mode_16_64 3 - .amdhsa_dx10_clamp 1 - .amdhsa_ieee_mode 1 - .amdhsa_fp16_overflow 0 - .amdhsa_workgroup_processor_mode 1 - .amdhsa_memory_ordered 1 - .amdhsa_forward_progress 0 - .amdhsa_shared_vgpr_count 0 - .amdhsa_exception_fp_ieee_invalid_op 0 - .amdhsa_exception_fp_denorm_src 0 - .amdhsa_exception_fp_ieee_div_zero 0 - .amdhsa_exception_fp_ieee_overflow 0 - .amdhsa_exception_fp_ieee_underflow 0 - .amdhsa_exception_fp_ieee_inexact 0 - .amdhsa_exception_int_div_zero 0 - .end_amdhsa_kernel - .text -.Lfunc_end0: - .size _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_, .Lfunc_end0-_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - ; -- End function - .section .AMDGPU.csdata -; Kernel info: -; codeLenInByte = 408 -; NumSgprs: 18 -; NumVgprs: 5 -; ScratchSize: 0 -; MemoryBound: 0 -; FloatMode: 240 -; IeeeMode: 1 -; LDSByteSize: 0 bytes/workgroup (compile time only) -; SGPRBlocks: 2 -; VGPRBlocks: 0 -; NumSGPRsForWavesPerEU: 18 -; NumVGPRsForWavesPerEU: 5 -; Occupancy: 16 -; WaveLimiterHint : 0 -; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0 -; COMPUTE_PGM_RSRC2:USER_SGPR: 15 -; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0 -; COMPUTE_PGM_RSRC2:TGID_X_EN: 1 -; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0 -; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0 -; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0 - .text - .p2alignl 7, 3214868480 - .fill 96, 4, 3214868480 - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .section ".note.GNU-stack" - .amdgpu_metadata ---- -amdhsa.kernels: - - .args: - - .name: state - .offset: 0 - .size: 88 - .value_kind: by_value - - .offset: 88 - .size: 24 - .value_kind: by_value - - .offset: 112 - .size: 40 - .value_kind: by_value - - .offset: 152 - .size: 8 - .value_kind: by_value - - .offset: 160 - .size: 8 - .value_kind: by_value - - .offset: 168 - .size: 8 - .value_kind: by_value - .group_segment_fixed_size: 0 - .kernarg_segment_align: 8 - .kernarg_segment_size: 176 - .language: OpenCL C - .language_version: - - 2 - - 0 - .max_flat_workgroup_size: 1024 - .name: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - .private_segment_fixed_size: 0 - .sgpr_count: 18 - .sgpr_spill_count: 0 - .symbol: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_.kd - .uses_dynamic_stack: false - .vgpr_count: 5 - .vgpr_spill_count: 0 - .wavefront_size: 32 -amdhsa.target: amdgcn-amd-amdhsa--gfx1100 -amdhsa.version: - - 1 - - 1 -... - - .end_amdgpu_metadata diff --git a/devcode_linear/gpu_kernel_xx!_1.lowered.jl b/devcode_linear/gpu_kernel_xx!_1.lowered.jl deleted file mode 100644 index 9f3566772..000000000 --- a/devcode_linear/gpu_kernel_xx!_1.lowered.jl +++ /dev/null @@ -1,46 +0,0 @@ -CodeInfo( -1 ─ Core.NewvarNode(:(val)) -│ Core.NewvarNode(:(@_8)) -│ Core.NewvarNode(:(res)) -│ Core.NewvarNode(:(idx)) -│ %5 = (KernelAbstractions.__validindex)(__ctx__) -└── goto #9 if not %5 -2 ─ idx = KernelAbstractions.__index_Global_Linear(__ctx__) -│ %8 = Main.eltype(tensor) -│ res = Main.zero(%8) -│ %10 = -Nx -│ %11 = %10:Nx -│ @_8 = Base.iterate(%11) -│ %13 = @_8 === nothing -│ %14 = Base.not_int(%13) -└── goto #8 if not %14 -3 ┄ %16 = @_8 -│ p = Core.getfield(%16, 1) -│ %18 = Core.getfield(%16, 2) -│ %19 = -Ny -│ %20 = %19:Ny -│ @_11 = Base.iterate(%20) -│ %22 = @_11 === nothing -│ %23 = Base.not_int(%22) -└── goto #6 if not %23 -4 ┄ %25 = @_11 -│ q = Core.getfield(%25, 1) -│ %27 = Core.getfield(%25, 2) -│ res = res + 2.0 -│ @_11 = Base.iterate(%20, %27) -│ %30 = @_11 === nothing -│ %31 = Base.not_int(%30) -└── goto #6 if not %31 -5 ─ goto #4 -6 ┄ @_8 = Base.iterate(%11, %18) -│ %35 = @_8 === nothing -│ %36 = Base.not_int(%35) -└── goto #8 if not %36 -7 ─ goto #3 -8 ┄ nothing -│ Base.setindex!(tensor, res, idx) -│ val = res -│ nothing -└── val -9 ┄ return Main.nothing -) diff --git a/devcode_linear/gpu_kernel_xx!_1.opt.ll b/devcode_linear/gpu_kernel_xx!_1.opt.ll deleted file mode 100644 index 87632e761..000000000 --- a/devcode_linear/gpu_kernel_xx!_1.opt.ll +++ /dev/null @@ -1,96 +0,0 @@ -; ModuleID = 'start' -source_filename = "start" -target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:10:11:12:13" -target triple = "amdgcn-amd-amdhsa" - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.x() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.x() #0 - -define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #1 { -conversion: - %.fca.0.0.0.0.extract = extractvalue { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, 0, 0, 0, 0 - %.fca.1.1.0.0.0.extract = extractvalue { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, 1, 1, 0, 0, 0 - %.fca.1.extract = extractvalue { [3 x i64], i8 addrspace(1)*, i64 } %1, 1 - %5 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 - %6 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 - %7 = add nuw nsw i32 %6, 1 - %8 = zext i32 %7 to i64 - %9 = zext i32 %5 to i64 - %10 = mul i64 %.fca.1.1.0.0.0.extract, %9 - %11 = add i64 %10, %8 - %12 = icmp slt i64 %11, 1 - %13 = icmp sgt i64 %11, %.fca.0.0.0.0.extract - %14 = or i1 %12, %13 - br i1 %14, label %L299, label %L103 - -L103: ; preds = %conversion - %15 = sub i64 0, %2 - %.not = icmp sgt i64 %15, %2 - %16 = sext i1 %.not to i64 - %value_phi = xor i64 %16, %2 - %.not6.not = icmp slt i64 %value_phi, %15 - br i1 %.not6.not, label %L293, label %L235.preheader - -L235.preheader: ; preds = %L103 - %17 = sub i64 0, %3 - %.not7 = icmp sgt i64 %17, %3 - %18 = sext i1 %.not7 to i64 - %value_phi5 = xor i64 %18, %3 - %.not8.not = icmp slt i64 %value_phi5, %17 - br label %L235 - -L235: ; preds = %L267, %L235.preheader - %value_phi3 = phi i64 [ %21, %L267 ], [ %15, %L235.preheader ] - %value_phi4 = phi double [ %value_phi12, %L267 ], [ 0.000000e+00, %L235.preheader ] - br i1 %.not8.not, label %L267, label %L254 - -L254: ; preds = %L254, %L235 - %value_phi8 = phi double [ %19, %L254 ], [ %value_phi4, %L235 ] - %value_phi9 = phi i64 [ %20, %L254 ], [ %17, %L235 ] - %19 = fadd double %value_phi8, 2.000000e+00 - %.not9 = icmp eq i64 %value_phi9, %value_phi5 - %20 = add i64 %value_phi9, 1 - br i1 %.not9, label %L267, label %L254 - -L267: ; preds = %L254, %L235 - %value_phi12 = phi double [ %value_phi4, %L235 ], [ %19, %L254 ] - %.not10 = icmp eq i64 %value_phi3, %value_phi - %21 = add i64 %value_phi3, 1 - br i1 %.not10, label %L293, label %L235 - -L293: ; preds = %L267, %L103 - %value_phi15 = phi double [ 0.000000e+00, %L103 ], [ %value_phi12, %L267 ] - %22 = add nsw i64 %8, -1 - %23 = add i64 %22, %10 - %24 = bitcast i8 addrspace(1)* %.fca.1.extract to double addrspace(1)* - %25 = getelementptr inbounds double, double addrspace(1)* %24, i64 %23 - store double %value_phi15, double addrspace(1)* %25, align 8, !tbaa !9 - br label %L299 - -L299: ; preds = %L293, %conversion - ret void -} - -attributes #0 = { nounwind readnone speculatable willreturn } -attributes #1 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } - -!llvm.module.flags = !{!0, !1, !2, !3} -!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} -!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} -!julia.kernel = !{!6} - -!0 = !{i32 2, !"Dwarf Version", i32 4} -!1 = !{i32 2, !"Debug Info Version", i32 3} -!2 = !{i32 1, !"wchar_size", i32 4} -!3 = !{i32 7, !"PIC Level", i32 1} -!4 = !{i32 2, i32 0} -!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} -!6 = !{void ({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} -!7 = !{i32 0, i32 -2} -!8 = !{i32 0, i32 1023} -!9 = !{!10, !10, i64 0, i64 0} -!10 = !{!"custom_tbaa_addrspace(1)", !11, i64 0} -!11 = !{!"custom_tbaa"} diff --git a/devcode_linear/gpu_kernel_xx!_1.typed.jl b/devcode_linear/gpu_kernel_xx!_1.typed.jl deleted file mode 100644 index 0ceea95b5..000000000 --- a/devcode_linear/gpu_kernel_xx!_1.typed.jl +++ /dev/null @@ -1,842 +0,0 @@ -CodeInfo( - @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:94 within `gpu_kernel_xx!` - ┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:144 within `#__validindex` - │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` - ││┌ @ Base.jl:37 within `getproperty` -1 ───│││ %1 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{1, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}} -│ │└└ -│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %2 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ ││││││ %3 = Base.llvmcall(%2, UInt32, Tuple{})::UInt32 -│ ││││└└ -│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ │││││ %4 = Base.add_int(%3, 0x00000001)::UInt32 -│ ││└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %5 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%5, UInt32, Tuple{})::UInt32 -│ ││└└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %7 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%7, UInt32, Tuple{})::UInt32 -│ │└└└└└ -│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %9 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ ││││││ %10 = Base.llvmcall(%9, UInt32, Tuple{})::UInt32 -│ ││││└└ -│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ │││││ %11 = Base.add_int(%10, 0x00000001)::UInt32 -│ ││└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %12 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%12, UInt32, Tuple{})::UInt32 -│ ││└└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %14 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%14, UInt32, Tuple{})::UInt32 -│ │└└└└└ -│ │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` -│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` -│ │││┌ @ Base.jl:37 within `getproperty` -│ ││││ %16 = Base.getfield(%1, :blocks)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ ││└└ -│ ││┌ @ abstractarray.jl:1291 within `getindex` -│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ ││││┌ @ indices.jl:359 within `_to_indices1` -│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ ││││││┌ @ number.jl:7 within `convert` -│ │││││││┌ @ boot.jl:784 within `Int64` -│ ││││││││┌ @ boot.jl:708 within `toInt64` -│ │││││││││ %17 = Core.zext_int(Core.Int64, %4)::Int64 -│ │││└└└└└└ -│ │││┌ @ abstractarray.jl:1341 within `_getindex` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────│││││ goto #6 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -2 ───││││││ %19 = Core.tuple(%17)::Tuple{Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ ││││││┌ @ abstractarray.jl:389 within `eachindex` -│ │││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││┌ @ multidimensional.jl:344 within `axes` -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %20 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}} -│ │││││││││└ -│ │││││││││┌ @ tuple.jl:291 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %21 = Base.getfield(%20, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %22 = Base.getfield(%21, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %23 = Base.slt_int(%22, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %24 = Core.ifelse(%23, 0, %22)::Int64 -│ ││││││└└└└└└└└└└ -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %25 = Base.sub_int(%17, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %26 = Base.bitcast(UInt64, %25)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %27 = Base.bitcast(UInt64, %24)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %28 = Base.ult_int(%26, %27)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #4 if not %28 -3 ───││││││ goto #5 -4 ───││││││ invoke Base.throw_boundserror(%16::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %19::Tuple{Int64})::Union{} -└────││││││ unreachable -5 ───││││││ nothing::Nothing - │││││└ - │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - │││││┌ @ Base.jl:37 within `getproperty` -6 ┄──││││││ %34 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:318 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %35 = Base.getfield(%34, 1, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ │││││││┌ @ range.jl:937 within `getindex` -└────││││││││ goto #10 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -7 ───││││││││││ %37 = Base.slt_int(0, %17)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %38 = Base.getfield(%35, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %39 = Base.sle_int(%17, %38)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %40 = Base.and_int(%37, %39)::Bool -│ ││││││││└ -└────││││││││ goto #9 if not %40 -8 ───││││││││ goto #10 -9 ───││││││││ invoke Base.throw_boundserror(%35::Base.OneTo{Int64}, %17::Int64)::Union{} -└────││││││││ unreachable -10 ┄─││││││││ goto #11 -11 ──││││││││ goto #12 -12 ──││││││││ goto #13 -13 ──││││││││ goto #14 -14 ──││││││││ goto #15 -15 ──││││││││ goto #16 - ││└└└└└└ - ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - │││┌ @ Base.jl:37 within `getproperty` -16 ──││││ %51 = Base.getfield(%1, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ ││└└ -│ ││┌ @ abstractarray.jl:1291 within `getindex` -│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ ││││┌ @ indices.jl:359 within `_to_indices1` -│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ ││││││┌ @ number.jl:7 within `convert` -│ │││││││┌ @ boot.jl:784 within `Int64` -│ ││││││││┌ @ boot.jl:708 within `toInt64` -│ │││││││││ %52 = Core.zext_int(Core.Int64, %11)::Int64 -│ │││└└└└└└ -│ │││┌ @ abstractarray.jl:1341 within `_getindex` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────│││││ goto #21 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -17 ──││││││ %54 = Core.tuple(%52)::Tuple{Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ ││││││┌ @ abstractarray.jl:389 within `eachindex` -│ │││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││┌ @ multidimensional.jl:344 within `axes` -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %55 = Base.getfield(%51, :indices)::Tuple{Base.OneTo{Int64}} -│ │││││││││└ -│ │││││││││┌ @ tuple.jl:291 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %56 = Base.getfield(%55, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %57 = Base.getfield(%56, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %58 = Base.slt_int(%57, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %59 = Core.ifelse(%58, 0, %57)::Int64 -│ ││││││└└└└└└└└└└ -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %60 = Base.sub_int(%52, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %61 = Base.bitcast(UInt64, %60)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %62 = Base.bitcast(UInt64, %59)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %63 = Base.ult_int(%61, %62)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #19 if not %63 -18 ──││││││ goto #20 -19 ──││││││ invoke Base.throw_boundserror(%51::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %54::Tuple{Int64})::Union{} -└────││││││ unreachable -20 ──││││││ nothing::Nothing - │││││└ - │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - │││││┌ @ Base.jl:37 within `getproperty` -21 ┄─││││││ %69 = Base.getfield(%51, :indices)::Tuple{Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:318 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %70 = Base.getfield(%69, 1, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ │││││││┌ @ range.jl:937 within `getindex` -└────││││││││ goto #25 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -22 ──││││││││││ %72 = Base.slt_int(0, %52)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %73 = Base.getfield(%70, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %74 = Base.sle_int(%52, %73)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %75 = Base.and_int(%72, %74)::Bool -│ ││││││││└ -└────││││││││ goto #24 if not %75 -23 ──││││││││ goto #25 -24 ──││││││││ invoke Base.throw_boundserror(%70::Base.OneTo{Int64}, %52::Int64)::Union{} -└────││││││││ unreachable -25 ┄─││││││││ goto #26 -26 ──││││││││ goto #27 -27 ──││││││││ goto #28 -28 ──││││││││ goto #29 -29 ──││││││││ goto #30 -30 ──││││││││ goto #31 - ││└└└└└└ - ││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 - ││┌ @ ntuple.jl:48 within `ntuple` - │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` - ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - │││││┌ @ Base.jl:37 within `getproperty` -31 ──││││││ %86 = Base.getfield(%1, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ ││││└└ -│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %87 = Base.getfield(%86, :indices)::Tuple{Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:291 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %88 = Base.getfield(%87, 1, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ range.jl:779 within `length` -│ │││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││ %89 = Base.getfield(%88, :stop)::Int64 -│ ││││└└└└ -│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ ││││┌ @ int.jl:86 within `-` -│ │││││ %90 = Base.sub_int(%17, 1)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:88 within `*` -│ │││││ %91 = Base.mul_int(%90, %89)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:87 within `+` -│ │││││ %92 = Base.add_int(%91, %52)::Int64 -└────│││││ goto #32 - │└└└└ - │ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:145 within `#__validindex` - │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` - ││┌ @ Base.jl:37 within `getproperty` -32 ──│││ %94 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ │└└ -│ │┌ @ multidimensional.jl:471 within `in` -│ ││┌ @ Base.jl:37 within `getproperty` -│ │││ %95 = Base.getfield(%94, :indices)::Tuple{Base.OneTo{Int64}} -│ ││└ -│ ││┌ @ tuple.jl:318 within `map` -│ │││┌ @ tuple.jl:31 within `getindex` -│ ││││ %96 = Base.getfield(%95, 1, true)::Base.OneTo{Int64} -│ │││└ -│ │││┌ @ range.jl:1439 within `in` -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %97 = Base.sle_int(1, %92)::Bool -│ ││││└ -│ ││││┌ @ range.jl:839 within `last` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %98 = Base.getfield(%96, :stop)::Int64 -│ ││││└└ -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %99 = Base.sle_int(%92, %98)::Bool -│ ││││└ -│ ││││┌ @ bool.jl:38 within `&` -│ │││││ %100 = Base.and_int(%97, %99)::Bool -│ │└└└└ -└────│ goto #33 - └ -33 ── goto #109 if not %100 - @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:95 within `gpu_kernel_xx!` - ┌ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:12 within `macro expansion` - │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:125 within `#__index_Global_Linear` - ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` - │││┌ @ Base.jl:37 within `getproperty` -34 ──││││ %103 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{1, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}} -│ ││└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %104 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ │││││││ %105 = Base.llvmcall(%104, UInt32, Tuple{})::UInt32 -│ │││││└└ -│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ ││││││ %106 = Base.add_int(%105, 0x00000001)::UInt32 -│ │││└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %107 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%107, UInt32, Tuple{})::UInt32 -│ │││└└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %109 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%109, UInt32, Tuple{})::UInt32 -│ ││└└└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %111 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ │││││││ %112 = Base.llvmcall(%111, UInt32, Tuple{})::UInt32 -│ │││││└└ -│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ ││││││ %113 = Base.add_int(%112, 0x00000001)::UInt32 -│ │││└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %114 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%114, UInt32, Tuple{})::UInt32 -│ │││└└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %116 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%116, UInt32, Tuple{})::UInt32 -│ ││└└└└└ -│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` -│ │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` -│ ││││┌ @ Base.jl:37 within `getproperty` -│ │││││ %118 = Base.getfield(%103, :blocks)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ │││└└ -│ │││┌ @ abstractarray.jl:1291 within `getindex` -│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ │││││┌ @ indices.jl:359 within `_to_indices1` -│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ │││││││┌ @ number.jl:7 within `convert` -│ ││││││││┌ @ boot.jl:784 within `Int64` -│ │││││││││┌ @ boot.jl:708 within `toInt64` -│ ││││││││││ %119 = Core.zext_int(Core.Int64, %106)::Int64 -│ ││││└└└└└└ -│ ││││┌ @ abstractarray.jl:1341 within `_getindex` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────││││││ goto #39 if not false - ││││││┌ @ abstractarray.jl:700 within `checkbounds` -35 ──│││││││ %121 = Core.tuple(%119)::Tuple{Int64} -│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ │││││││┌ @ abstractarray.jl:389 within `eachindex` -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ multidimensional.jl:344 within `axes` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %122 = Base.getfield(%118, :indices)::Tuple{Base.OneTo{Int64}} -│ ││││││││││└ -│ ││││││││││┌ @ tuple.jl:291 within `map` -│ │││││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││││ %123 = Base.getfield(%122, 1, true)::Base.OneTo{Int64} -│ │││││││││││└ -│ │││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││││ %124 = Base.getfield(%123, :stop)::Int64 -│ │││││││││││││└└ -│ │││││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││││ %125 = Base.slt_int(%124, 0)::Bool -│ ││││││││││││││││└ -│ ││││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││││ %126 = Core.ifelse(%125, 0, %124)::Int64 -│ │││││││└└└└└└└└└└ -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %127 = Base.sub_int(%119, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %128 = Base.bitcast(UInt64, %127)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %129 = Base.bitcast(UInt64, %126)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %130 = Base.ult_int(%128, %129)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││││ goto #37 if not %130 -36 ──│││││││ goto #38 -37 ──│││││││ invoke Base.throw_boundserror(%118::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %121::Tuple{Int64})::Union{} -└────│││││││ unreachable -38 ──│││││││ nothing::Nothing - ││││││└ - ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - ││││││┌ @ Base.jl:37 within `getproperty` -39 ┄─│││││││ %136 = Base.getfield(%118, :indices)::Tuple{Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:318 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %137 = Base.getfield(%136, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ ││││││││┌ @ range.jl:937 within `getindex` -└────│││││││││ goto #43 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -40 ──│││││││││││ %139 = Base.slt_int(0, %119)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %140 = Base.getfield(%137, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %141 = Base.sle_int(%119, %140)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %142 = Base.and_int(%139, %141)::Bool -│ │││││││││└ -└────│││││││││ goto #42 if not %142 -41 ──│││││││││ goto #43 -42 ──│││││││││ invoke Base.throw_boundserror(%137::Base.OneTo{Int64}, %119::Int64)::Union{} -└────│││││││││ unreachable -43 ┄─│││││││││ goto #44 -44 ──│││││││││ goto #45 -45 ──│││││││││ goto #46 -46 ──│││││││││ goto #47 -47 ──│││││││││ goto #48 -48 ──│││││││││ goto #49 - │││└└└└└└ - │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - ││││┌ @ Base.jl:37 within `getproperty` -49 ──│││││ %153 = Base.getfield(%103, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ │││└└ -│ │││┌ @ abstractarray.jl:1291 within `getindex` -│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ │││││┌ @ indices.jl:359 within `_to_indices1` -│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ │││││││┌ @ number.jl:7 within `convert` -│ ││││││││┌ @ boot.jl:784 within `Int64` -│ │││││││││┌ @ boot.jl:708 within `toInt64` -│ ││││││││││ %154 = Core.zext_int(Core.Int64, %113)::Int64 -│ ││││└└└└└└ -│ ││││┌ @ abstractarray.jl:1341 within `_getindex` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────││││││ goto #54 if not false - ││││││┌ @ abstractarray.jl:700 within `checkbounds` -50 ──│││││││ %156 = Core.tuple(%154)::Tuple{Int64} -│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ │││││││┌ @ abstractarray.jl:389 within `eachindex` -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ multidimensional.jl:344 within `axes` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %157 = Base.getfield(%153, :indices)::Tuple{Base.OneTo{Int64}} -│ ││││││││││└ -│ ││││││││││┌ @ tuple.jl:291 within `map` -│ │││││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││││ %158 = Base.getfield(%157, 1, true)::Base.OneTo{Int64} -│ │││││││││││└ -│ │││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││││ %159 = Base.getfield(%158, :stop)::Int64 -│ │││││││││││││└└ -│ │││││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││││ %160 = Base.slt_int(%159, 0)::Bool -│ ││││││││││││││││└ -│ ││││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││││ %161 = Core.ifelse(%160, 0, %159)::Int64 -│ │││││││└└└└└└└└└└ -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %162 = Base.sub_int(%154, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %163 = Base.bitcast(UInt64, %162)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %164 = Base.bitcast(UInt64, %161)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %165 = Base.ult_int(%163, %164)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││││ goto #52 if not %165 -51 ──│││││││ goto #53 -52 ──│││││││ invoke Base.throw_boundserror(%153::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, %156::Tuple{Int64})::Union{} -└────│││││││ unreachable -53 ──│││││││ nothing::Nothing - ││││││└ - ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - ││││││┌ @ Base.jl:37 within `getproperty` -54 ┄─│││││││ %171 = Base.getfield(%153, :indices)::Tuple{Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:318 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %172 = Base.getfield(%171, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ ││││││││┌ @ range.jl:937 within `getindex` -└────│││││││││ goto #58 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -55 ──│││││││││││ %174 = Base.slt_int(0, %154)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %175 = Base.getfield(%172, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %176 = Base.sle_int(%154, %175)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %177 = Base.and_int(%174, %176)::Bool -│ │││││││││└ -└────│││││││││ goto #57 if not %177 -56 ──│││││││││ goto #58 -57 ──│││││││││ invoke Base.throw_boundserror(%172::Base.OneTo{Int64}, %154::Int64)::Union{} -└────│││││││││ unreachable -58 ┄─│││││││││ goto #59 -59 ──│││││││││ goto #60 -60 ──│││││││││ goto #61 -61 ──│││││││││ goto #62 -62 ──│││││││││ goto #63 -63 ──│││││││││ goto #64 - │││└└└└└└ - │││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 - │││┌ @ ntuple.jl:48 within `ntuple` - ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` - │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - ││││││┌ @ Base.jl:37 within `getproperty` -64 ──│││││││ %188 = Base.getfield(%103, :workitems)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ │││││└└ -│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ ││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││ %189 = Base.getfield(%188, :indices)::Tuple{Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:291 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %190 = Base.getfield(%189, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ range.jl:779 within `length` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %191 = Base.getfield(%190, :stop)::Int64 -│ │││││└└└└ -│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ │││││┌ @ int.jl:86 within `-` -│ ││││││ %192 = Base.sub_int(%119, 1)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:88 within `*` -│ ││││││ %193 = Base.mul_int(%192, %191)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:87 within `+` -│ ││││││ %194 = Base.add_int(%193, %154)::Int64 -└────││││││ goto #65 - ││└└└└ - ││ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:127 within `#__index_Global_Linear` - ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` - │││┌ @ Base.jl:37 within `getproperty` -65 ──││││ %196 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{1, Tuple{Base.OneTo{Int64}}} -│ ││└└ -│ ││┌ @ multidimensional.jl:576 within `LinearIndices` -│ │││┌ @ Base.jl:37 within `getproperty` -│ ││││ %197 = Base.getfield(%196, :indices)::Tuple{Base.OneTo{Int64}} -│ │││└ -│ │││ @ multidimensional.jl:576 within `LinearIndices` @ indices.jl:476 -│ │││ %198 = %new(LinearIndices{1, Tuple{Base.OneTo{Int64}}}, %197)::LinearIndices{1, Tuple{Base.OneTo{Int64}}} -│ ││└ -│ ││┌ @ abstractarray.jl:1291 within `getindex` -│ │││┌ @ abstractarray.jl:1319 within `_getindex` -│ ││││┌ @ indices.jl:510 within `getindex` -└────│││││ goto #70 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -66 ──││││││ %200 = Core.tuple(%194)::Tuple{Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ ││││││┌ @ abstractarray.jl:389 within `eachindex` -│ │││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││┌ @ indices.jl:505 within `axes` -│ │││││││││┌ @ tuple.jl:291 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %201 = Base.getfield(%197, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %202 = Base.getfield(%201, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %203 = Base.slt_int(%202, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %204 = Core.ifelse(%203, 0, %202)::Int64 -│ ││││││└└└└└└└└└└ -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %205 = Base.sub_int(%194, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %206 = Base.bitcast(UInt64, %205)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %207 = Base.bitcast(UInt64, %204)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %208 = Base.ult_int(%206, %207)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #68 if not %208 -67 ──││││││ goto #69 -68 ──││││││ invoke Base.throw_boundserror(%198::LinearIndices{1, Tuple{Base.OneTo{Int64}}}, %200::Tuple{Int64})::Union{} -└────││││││ unreachable -69 ──││││││ nothing::Nothing -70 ┄─││││││ goto #71 -71 ──││││││ goto #72 -72 ──││││││ goto #73 -73 ──││││││ goto #74 - │└└└└└ - │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:14 within `macro expansion` - │┌ @ int.jl:85 within `-` -74 ──││ %218 = Base.neg_int(Nx)::Int64 -│ │└ -│ │┌ @ range.jl:5 within `Colon` -│ ││┌ @ range.jl:403 within `UnitRange` -│ │││┌ @ range.jl:414 within `unitrange_last` -│ ││││┌ @ operators.jl:425 within `>=` -│ │││││┌ @ int.jl:514 within `<=` -│ ││││││ %219 = Base.sle_int(%218, Nx)::Bool -│ ││││└└ -└────││││ goto #76 if not %219 -75 ──││││ goto #77 - ││││┌ @ int.jl:86 within `-` -76 ──│││││ %222 = Base.sub_int(%218, 1)::Int64 -└────│││││ goto #77 - │││└└ -77 ┄─│││ %224 = φ (#75 => Nx, #76 => %222)::Int64 -└────│││ goto #78 -78 ──│││ goto #79 - │└└ - │┌ @ range.jl:897 within `iterate` - ││┌ @ range.jl:672 within `isempty` - │││┌ @ operators.jl:378 within `>` - ││││┌ @ int.jl:83 within `<` -79 ──│││││ %227 = Base.slt_int(%224, %218)::Bool -│ ││└└└ -└────││ goto #81 if not %227 -80 ──││ goto #82 -81 ──││ goto #82 - │└ -82 ┄─│ %231 = φ (#80 => true, #81 => false)::Bool -│ │ %232 = φ (#81 => %218)::Int64 -│ │ %233 = Base.not_int(%231)::Bool -└────│ goto #102 if not %233 -83 ┄─│ %235 = φ (#82 => %232, #101 => %273)::Int64 -│ │ %236 = φ (#82 => 0.0, #101 => %267)::Float64 -│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:15 within `macro expansion` -│ │┌ @ int.jl:85 within `-` -│ ││ %237 = Base.neg_int(Ny)::Int64 -│ │└ -│ │┌ @ range.jl:5 within `Colon` -│ ││┌ @ range.jl:403 within `UnitRange` -│ │││┌ @ range.jl:414 within `unitrange_last` -│ ││││┌ @ operators.jl:425 within `>=` -│ │││││┌ @ int.jl:514 within `<=` -│ ││││││ %238 = Base.sle_int(%237, Ny)::Bool -│ ││││└└ -└────││││ goto #85 if not %238 -84 ──││││ goto #86 - ││││┌ @ int.jl:86 within `-` -85 ──│││││ %241 = Base.sub_int(%237, 1)::Int64 -└────│││││ goto #86 - │││└└ -86 ┄─│││ %243 = φ (#84 => Ny, #85 => %241)::Int64 -└────│││ goto #87 -87 ──│││ goto #88 - │└└ - │┌ @ range.jl:897 within `iterate` - ││┌ @ range.jl:672 within `isempty` - │││┌ @ operators.jl:378 within `>` - ││││┌ @ int.jl:83 within `<` -88 ──│││││ %246 = Base.slt_int(%243, %237)::Bool -│ ││└└└ -└────││ goto #90 if not %246 -89 ──││ goto #91 -90 ──││ goto #91 - │└ -91 ┄─│ %250 = φ (#89 => true, #90 => false)::Bool -│ │ %251 = φ (#90 => %237)::Int64 -│ │ %252 = Base.not_int(%250)::Bool -└────│ goto #97 if not %252 -92 ┄─│ %254 = φ (#91 => %236, #96 => %256)::Float64 -│ │ %255 = φ (#91 => %251, #96 => %262)::Int64 -│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:16 within `macro expansion` -│ │┌ @ float.jl:409 within `+` -│ ││ %256 = Base.add_float(%254, 2.0)::Float64 -│ │└ -│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:17 within `macro expansion` -│ │┌ @ range.jl:901 within `iterate` -│ ││┌ @ promotion.jl:521 within `==` -│ │││ %257 = (%255 === %243)::Bool -│ ││└ -└────││ goto #94 if not %257 -93 ──││ goto #95 - ││ @ range.jl:902 within `iterate` - ││┌ @ int.jl:87 within `+` -94 ──│││ %260 = Base.add_int(%255, 1)::Int64 -└────│││ goto #95 - │└└ -95 ┄─│ %262 = φ (#94 => %260)::Int64 -│ │ %263 = φ (#93 => true, #94 => false)::Bool -│ │ %264 = Base.not_int(%263)::Bool -└────│ goto #97 if not %264 -96 ──│ goto #92 - │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:18 within `macro expansion` -97 ┄─│ %267 = φ (#95 => %256, #91 => %236)::Float64 -│ │┌ @ range.jl:901 within `iterate` -│ ││┌ @ promotion.jl:521 within `==` -│ │││ %268 = (%235 === %224)::Bool -│ ││└ -└────││ goto #99 if not %268 -98 ──││ goto #100 - ││ @ range.jl:902 within `iterate` - ││┌ @ int.jl:87 within `+` -99 ──│││ %271 = Base.add_int(%235, 1)::Int64 -└────│││ goto #100 - │└└ -100 ┄│ %273 = φ (#99 => %271)::Int64 -│ │ %274 = φ (#98 => true, #99 => false)::Bool -│ │ %275 = Base.not_int(%274)::Bool -└────│ goto #102 if not %275 -101 ─│ goto #83 - │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:19 within `macro expansion` -102 ┄│ %278 = φ (#100 => %267, #82 => 0.0)::Float64 -│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:88 within `#setindex!` -└────││ goto #107 if not false - ││┌ @ abstractarray.jl:700 within `checkbounds` -103 ─│││ %280 = Core.tuple(%194)::Tuple{Int64} -│ │││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ │││┌ @ abstractarray.jl:388 within `eachindex` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:69 within `length` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %281 = Base.getfield(tensor, :len)::Int64 -│ ││││└└ -│ ││││┌ @ range.jl:469 within `oneto` -│ │││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││┌ @ promotion.jl:532 within `max` -│ │││││││┌ @ int.jl:83 within `<` -│ ││││││││ %282 = Base.slt_int(%281, 0)::Bool -│ │││││││└ -│ │││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││ %283 = Core.ifelse(%282, 0, %281)::Int64 -│ │││└└└└└ -│ │││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││┌ @ int.jl:86 within `-` -│ │││││ %284 = Base.sub_int(%194, 1)::Int64 -│ ││││└ -│ ││││┌ @ essentials.jl:524 within `unsigned` -│ │││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││ %285 = Base.bitcast(UInt64, %284)::UInt64 -│ ││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││ %286 = Base.bitcast(UInt64, %283)::UInt64 -│ ││││└└ -│ ││││┌ @ int.jl:513 within `<` -│ │││││ %287 = Base.ult_int(%285, %286)::Bool -│ │││└└ -│ │││ @ abstractarray.jl:702 within `checkbounds` -└────│││ goto #105 if not %287 -104 ─│││ goto #106 -105 ─│││ invoke Base.throw_boundserror(tensor::ROCDeviceArray{Float64, 3, 1}, %280::Tuple{Int64})::Union{} -└────│││ unreachable -106 ─│││ nothing::Nothing - ││└ - ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:90 within `#setindex!` - ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:63 within `pointer` - │││┌ @ Base.jl:37 within `getproperty` -107 ┄││││ %293 = Base.getfield(tensor, :ptr)::Core.LLVMPtr{Float64, 1} -│ ││└└ -│ ││┌ @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/pointer.jl:88 within `unsafe_store!` -│ │││┌ @ none within `pointerset` -│ ││││┌ @ none within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││ %294 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine void @entry(i8 addrspace(1)* %0, double %1, i64 %2) #0 {\nentry:\n %3 = bitcast i8 addrspace(1)* %0 to double addrspace(1)*\n %4 = getelementptr inbounds double, double addrspace(1)* %3, i64 %2\n store double %1, double addrspace(1)* %4, align 8, !tbaa !0\n ret void\n}\n\nattributes #0 = { alwaysinline }\n\n!0 = !{!1, !1, i64 0, i64 0}\n!1 = !{!\"custom_tbaa_addrspace(1)\", !2, i64 0}\n!2 = !{!\"custom_tbaa\"}\n", "entry")::Tuple{String, String} -│ │││││┌ @ int.jl:86 within `-` -│ ││││││ %295 = Base.sub_int(%194, 1)::Int64 -│ │││││└ -│ │││││ Base.llvmcall(%294, Nothing, Tuple{Core.LLVMPtr{Float64, 1}, Float64, Int64}, %293, %278, %295)::Nothing -│ ││└└└ -│ ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:91 within `#setindex!` -└────││ goto #108 -108 ─││ nothing::Nothing - └└ - @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:97 within `gpu_kernel_xx!` -109 ┄ return Main.nothing -) => Nothing diff --git a/devcode_linear/gpu_kernel_xx!_1.unopt.ll b/devcode_linear/gpu_kernel_xx!_1.unopt.ll deleted file mode 100644 index ddb8e45cb..000000000 --- a/devcode_linear/gpu_kernel_xx!_1.unopt.ll +++ /dev/null @@ -1,440 +0,0 @@ -; ModuleID = 'start' -source_filename = "start" -target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7-ni:10:11:12:13" -target triple = "amdgcn-amd-amdhsa" - -declare {}*** @julia.get_pgcstack() local_unnamed_addr - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.x() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.y() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.z() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.x() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.y() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.z() #0 - -define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #1 { -conversion: - %5 = alloca { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, align 8, addrspace(5) - %6 = addrspacecast { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(5)* %5 to { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* - store { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } %0, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, align 8 - %7 = alloca { [3 x i64], i8 addrspace(1)*, i64 }, align 8, addrspace(5) - %8 = addrspacecast { [3 x i64], i8 addrspace(1)*, i64 } addrspace(5)* %7 to { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* - store { [3 x i64], i8 addrspace(1)*, i64 } %1, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, align 8 - br label %top - -top: ; preds = %conversion - %9 = alloca [1 x i64], align 8, addrspace(5) - %10 = alloca [1 x i64], align 8, addrspace(5) - %11 = alloca [1 x i64], align 8, addrspace(5) - %12 = alloca [1 x i64], align 8, addrspace(5) - %13 = alloca [1 x [1 x [1 x i64]]], align 8, addrspace(5) - %14 = alloca [1 x i64], align 8, addrspace(5) - %15 = alloca [1 x i64], align 8, addrspace(5) - %16 = call {}*** @julia.get_pgcstack() - %17 = bitcast {}*** %16 to {}** - %current_task = getelementptr inbounds {}*, {}** %17, i64 -14 - %18 = bitcast {}** %current_task to i64* - %world_age = getelementptr inbounds i64, i64* %18, i64 15 - %19 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 - %20 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 - %21 = add i32 %20, 1 - %22 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 - %23 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 - %24 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 - %25 = add i32 %24, 1 - %26 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 - %27 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 - %28 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %19, i32 0, i32 0 - %29 = zext i32 %21 to i64 - br label %L34 - -L34: ; preds = %top - %30 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %28, i32 0, i32 0 - %31 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %30, i32 0, i32 0 - br label %L45 - -L45: ; preds = %L34 - br label %L46 - -L46: ; preds = %L45 - br label %L47 - -L47: ; preds = %L46 - br label %L48 - -L48: ; preds = %L47 - br label %L49 - -L49: ; preds = %L48 - br label %L50 - -L50: ; preds = %L49 - br label %L51 - -L51: ; preds = %L50 - %32 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %19, i32 0, i32 1 - %33 = zext i32 %25 to i64 - br label %L69 - -L69: ; preds = %L51 - %34 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %32, i32 0, i32 0 - %35 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %34, i32 0, i32 0 - br label %L80 - -L80: ; preds = %L69 - br label %L81 - -L81: ; preds = %L80 - br label %L82 - -L82: ; preds = %L81 - br label %L83 - -L83: ; preds = %L82 - br label %L84 - -L84: ; preds = %L83 - br label %L85 - -L85: ; preds = %L84 - br label %L86 - -L86: ; preds = %L85 - %36 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %19, i32 0, i32 1 - %37 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %36, i32 0, i32 0 - %38 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %37, i32 0, i32 0 - %39 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %38, i32 0, i32 0 - %40 = sub i64 %29, 1 - %41 = load i64, i64 addrspace(11)* %39, align 8, !alias.scope !9, !noalias !12 - %42 = mul i64 %40, %41 - %43 = add i64 %42, %33 - br label %L94 - -L94: ; preds = %L86 - %44 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 - %45 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %44, i32 0, i32 0 - %46 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %45, i32 0, i32 0 - %47 = icmp sle i64 1, %43 - %48 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %46, i32 0, i32 0 - %49 = load i64, i64 addrspace(11)* %48, align 8, !alias.scope !9, !noalias !12 - %50 = icmp sle i64 %43, %49 - %51 = and i1 %47, %50 - br label %L102 - -L102: ; preds = %L94 - %52 = xor i1 %51, true - br i1 %52, label %L299, label %L103 - -L103: ; preds = %L102 - %53 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 - %54 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 - %55 = add i32 %54, 1 - %56 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 - %57 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 - %58 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 - %59 = add i32 %58, 1 - %60 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 - %61 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 - %62 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %53, i32 0, i32 0 - %63 = zext i32 %55 to i64 - br label %L136 - -L136: ; preds = %L103 - %64 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %62, i32 0, i32 0 - %65 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %64, i32 0, i32 0 - br label %L147 - -L147: ; preds = %L136 - br label %L148 - -L148: ; preds = %L147 - br label %L149 - -L149: ; preds = %L148 - br label %L150 - -L150: ; preds = %L149 - br label %L151 - -L151: ; preds = %L150 - br label %L152 - -L152: ; preds = %L151 - br label %L153 - -L153: ; preds = %L152 - %66 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %53, i32 0, i32 1 - %67 = zext i32 %59 to i64 - br label %L171 - -L171: ; preds = %L153 - %68 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %66, i32 0, i32 0 - %69 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %68, i32 0, i32 0 - br label %L182 - -L182: ; preds = %L171 - br label %L183 - -L183: ; preds = %L182 - br label %L184 - -L184: ; preds = %L183 - br label %L185 - -L185: ; preds = %L184 - br label %L186 - -L186: ; preds = %L185 - br label %L187 - -L187: ; preds = %L186 - br label %L188 - -L188: ; preds = %L187 - %70 = getelementptr inbounds [2 x [1 x [1 x [1 x i64]]]], [2 x [1 x [1 x [1 x i64]]]] addrspace(11)* %53, i32 0, i32 1 - %71 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %70, i32 0, i32 0 - %72 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %71, i32 0, i32 0 - %73 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %72, i32 0, i32 0 - %74 = sub i64 %63, 1 - %75 = load i64, i64 addrspace(11)* %73, align 8, !alias.scope !9, !noalias !12 - %76 = mul i64 %74, %75 - %77 = add i64 %76, %67 - br label %L196 - -L196: ; preds = %L188 - %78 = getelementptr inbounds { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 - %79 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(11)* %78, i32 0, i32 0 - %80 = getelementptr inbounds [1 x [1 x [1 x i64]]], [1 x [1 x [1 x i64]]] addrspace(5)* %13, i32 0, i32 0 - %81 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %79, i32 0, i32 0 - %82 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %81, i32 0, i32 0 - %83 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(5)* %80, i32 0, i32 0 - %84 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(5)* %83, i32 0, i32 0 - %85 = load i64, i64 addrspace(11)* %82, align 8, !alias.scope !9, !noalias !12 - store i64 %85, i64 addrspace(5)* %84, align 8, !tbaa !17, !alias.scope !21, !noalias !22 - br label %L214 - -L214: ; preds = %L196 - br label %L215 - -L215: ; preds = %L214 - br label %L216 - -L216: ; preds = %L215 - br label %L217 - -L217: ; preds = %L216 - br label %L218 - -L218: ; preds = %L217 - %86 = sub i64 0, %2 - %87 = icmp sle i64 %86, %2 - %88 = xor i1 %87, true - br i1 %88, label %L222, label %L221 - -L221: ; preds = %L218 - br label %L224 - -L222: ; preds = %L218 - %89 = sub i64 %86, 1 - br label %L224 - -L224: ; preds = %L222, %L221 - %value_phi = phi i64 [ %2, %L221 ], [ %89, %L222 ] - br label %L226 - -L226: ; preds = %L224 - br label %L227 - -L227: ; preds = %L226 - %90 = icmp slt i64 %value_phi, %86 - %91 = xor i1 %90, true - br i1 %91, label %L230, label %L229 - -L229: ; preds = %L227 - br label %L231 - -L230: ; preds = %L227 - br label %L231 - -L231: ; preds = %L230, %L229 - %value_phi1 = phi i8 [ 1, %L229 ], [ 0, %L230 ] - %value_phi2 = phi i64 [ %86, %L230 ], [ undef, %L229 ] - %92 = trunc i8 %value_phi1 to i1 - %93 = xor i1 %92, true - %94 = xor i1 %93, true - br i1 %94, label %L231.L278_crit_edge, label %L231.L235_crit_edge - -L231.L278_crit_edge: ; preds = %L231 - br label %L278 - -L231.L235_crit_edge: ; preds = %L231 - br label %L235 - -L235: ; preds = %L277, %L231.L235_crit_edge - %value_phi3 = phi i64 [ %value_phi2, %L231.L235_crit_edge ], [ %value_phi13, %L277 ] - %value_phi4 = phi double [ 0.000000e+00, %L231.L235_crit_edge ], [ %value_phi12, %L277 ] - %95 = sub i64 0, %3 - %96 = icmp sle i64 %95, %3 - %97 = xor i1 %96, true - br i1 %97, label %L241, label %L240 - -L240: ; preds = %L235 - br label %L243 - -L241: ; preds = %L235 - %98 = sub i64 %95, 1 - br label %L243 - -L243: ; preds = %L241, %L240 - %value_phi5 = phi i64 [ %3, %L240 ], [ %98, %L241 ] - br label %L245 - -L245: ; preds = %L243 - br label %L246 - -L246: ; preds = %L245 - %99 = icmp slt i64 %value_phi5, %95 - %100 = xor i1 %99, true - br i1 %100, label %L249, label %L248 - -L248: ; preds = %L246 - br label %L250 - -L249: ; preds = %L246 - br label %L250 - -L250: ; preds = %L249, %L248 - %value_phi6 = phi i8 [ 1, %L248 ], [ 0, %L249 ] - %value_phi7 = phi i64 [ %95, %L249 ], [ undef, %L248 ] - %101 = trunc i8 %value_phi6 to i1 - %102 = xor i1 %101, true - %103 = xor i1 %102, true - br i1 %103, label %L250.L267_crit_edge, label %L250.L254_crit_edge - -L250.L267_crit_edge: ; preds = %L250 - br label %L267 - -L250.L254_crit_edge: ; preds = %L250 - br label %L254 - -L254: ; preds = %L266, %L250.L254_crit_edge - %value_phi8 = phi double [ %value_phi4, %L250.L254_crit_edge ], [ %104, %L266 ] - %value_phi9 = phi i64 [ %value_phi7, %L250.L254_crit_edge ], [ %value_phi10, %L266 ] - %104 = fadd double %value_phi8, 2.000000e+00 - %105 = icmp eq i64 %value_phi9, %value_phi5 - %106 = xor i1 %105, true - br i1 %106, label %L260, label %L259 - -L259: ; preds = %L254 - br label %L262 - -L260: ; preds = %L254 - %107 = add i64 %value_phi9, 1 - br label %L262 - -L262: ; preds = %L260, %L259 - %value_phi10 = phi i64 [ %107, %L260 ], [ undef, %L259 ] - %value_phi11 = phi i8 [ 1, %L259 ], [ 0, %L260 ] - %108 = trunc i8 %value_phi11 to i1 - %109 = xor i1 %108, true - %110 = xor i1 %109, true - br i1 %110, label %L262.L267_crit_edge, label %L266 - -L262.L267_crit_edge: ; preds = %L262 - br label %L267 - -L266: ; preds = %L262 - br label %L254 - -L267: ; preds = %L262.L267_crit_edge, %L250.L267_crit_edge - %value_phi12 = phi double [ %104, %L262.L267_crit_edge ], [ %value_phi4, %L250.L267_crit_edge ] - %111 = icmp eq i64 %value_phi3, %value_phi - %112 = xor i1 %111, true - br i1 %112, label %L271, label %L270 - -L270: ; preds = %L267 - br label %L273 - -L271: ; preds = %L267 - %113 = add i64 %value_phi3, 1 - br label %L273 - -L273: ; preds = %L271, %L270 - %value_phi13 = phi i64 [ %113, %L271 ], [ undef, %L270 ] - %value_phi14 = phi i8 [ 1, %L270 ], [ 0, %L271 ] - %114 = trunc i8 %value_phi14 to i1 - %115 = xor i1 %114, true - %116 = xor i1 %115, true - br i1 %116, label %L273.L278_crit_edge, label %L277 - -L273.L278_crit_edge: ; preds = %L273 - br label %L278 - -L277: ; preds = %L273 - br label %L235 - -L278: ; preds = %L273.L278_crit_edge, %L231.L278_crit_edge - %value_phi15 = phi double [ %value_phi12, %L273.L278_crit_edge ], [ 0.000000e+00, %L231.L278_crit_edge ] - br label %L293 - -L293: ; preds = %L278 - %117 = getelementptr inbounds { [3 x i64], i8 addrspace(1)*, i64 }, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, i32 0, i32 1 - %118 = sub i64 %77, 1 - %119 = load i8 addrspace(1)*, i8 addrspace(1)* addrspace(11)* %117, align 8, !alias.scope !9, !noalias !12 - %120 = bitcast i8 addrspace(1)* %119 to double addrspace(1)* - %121 = getelementptr inbounds double, double addrspace(1)* %120, i64 %118 - store double %value_phi15, double addrspace(1)* %121, align 8, !tbaa !23 - br label %L298 - -L298: ; preds = %L293 - br label %L299 - -L299: ; preds = %L298, %L102 - ret void -} - -attributes #0 = { nounwind readnone speculatable willreturn } -attributes #1 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } - -!llvm.module.flags = !{!0, !1, !2, !3} -!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} -!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} -!julia.kernel = !{!6} - -!0 = !{i32 2, !"Dwarf Version", i32 4} -!1 = !{i32 2, !"Debug Info Version", i32 3} -!2 = !{i32 1, !"wchar_size", i32 4} -!3 = !{i32 7, !"PIC Level", i32 1} -!4 = !{i32 2, i32 0} -!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} -!6 = !{void ({ [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl1E5TupleI5OneToI5Int64EEE7NDRangeILl1ES0_S0_S2_ILl1ES3_IS4_IS5_EEES2_ILl1ES3_IS4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} -!7 = !{i32 0, i32 -2} -!8 = !{i32 0, i32 1023} -!9 = !{!10} -!10 = !{!"jnoalias_const", !11} -!11 = !{!"jnoalias"} -!12 = !{!13, !14, !15, !16} -!13 = !{!"jnoalias_gcframe", !11} -!14 = !{!"jnoalias_stack", !11} -!15 = !{!"jnoalias_data", !11} -!16 = !{!"jnoalias_typemd", !11} -!17 = !{!18, !18, i64 0} -!18 = !{!"jtbaa_stack", !19, i64 0} -!19 = !{!"jtbaa", !20, i64 0} -!20 = !{!"jtbaa"} -!21 = !{!14} -!22 = !{!13, !15, !16, !10} -!23 = !{!24, !24, i64 0, i64 0} -!24 = !{!"custom_tbaa_addrspace(1)", !25, i64 0} -!25 = !{!"custom_tbaa"} diff --git a/devcode_size/gpu_kernel_xx!_1.asm b/devcode_size/gpu_kernel_xx!_1.asm deleted file mode 100644 index ce469ce82..000000000 --- a/devcode_size/gpu_kernel_xx!_1.asm +++ /dev/null @@ -1,809 +0,0 @@ - .text - .amdgcn_target "amdgcn-amd-amdhsa--gfx1100" - .globl _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ ; -- Begin function _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - .p2align 8 - .type _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_,@function -_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_: ; @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ -; %bb.0: ; %conversion - s_clause 0x1 - s_load_b64 s[4:5], s[0:1], 0x70 - s_load_b64 s[12:13], s[0:1], 0x0 - s_waitcnt lgkmcnt(0) - v_cmp_gt_i64_e64 s3, s[4:5], 0 - s_delay_alu instid0(VALU_DEP_1) - s_and_b32 vcc_lo, exec_lo, s3 - s_cbranch_vccz .LBB0_25 -; %bb.1: ; %pass - s_load_b64 s[8:9], s[0:1], 0x78 - s_mov_b32 s2, s15 - s_mov_b32 s3, 0 - v_mov_b32_e32 v2, 0 - v_cmp_lt_u64_e64 s3, s[2:3], s[4:5] - v_mov_b32_e32 v3, 0 - s_delay_alu instid0(VALU_DEP_2) - s_and_b32 vcc_lo, exec_lo, s3 - s_cbranch_vccnz .LBB0_3 -; %bb.2: - v_cvt_f32_u32_e32 v1, s4 - s_sub_i32 s6, 0, s4 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_rcp_iflag_f32_e32 v1, v1 - s_waitcnt_depctr 0xfff - v_mul_f32_e32 v1, 0x4f7ffffe, v1 - v_cvt_u32_f32_e32 v1, v1 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_readfirstlane_b32 s3, v1 - s_mul_i32 s6, s6, s3 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) - s_mul_hi_u32 s6, s3, s6 - s_add_i32 s3, s3, s6 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) - s_mul_hi_u32 s3, s2, s3 - s_mul_i32 s6, s3, s4 - s_add_i32 s7, s3, 1 - s_sub_i32 s6, s2, s6 - v_mov_b32_e32 v1, s7 - s_cmp_ge_u32 s6, s4 - s_cselect_b32 vcc_lo, -1, 0 - s_sub_i32 s7, s6, s4 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_cndmask_b32_e32 v1, s3, v1, vcc_lo - v_dual_mov_b32 v2, s7 :: v_dual_add_nc_u32 v3, 1, v1 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_cndmask_b32_e32 v2, s6, v2, vcc_lo - v_cmp_le_u32_e32 vcc_lo, s4, v2 - s_delay_alu instid0(VALU_DEP_3) - v_dual_cndmask_b32 v2, v1, v3 :: v_dual_mov_b32 v3, 0 -.LBB0_3: - s_waitcnt lgkmcnt(0) - v_cmp_gt_i64_e64 s3, s[8:9], 0 - s_delay_alu instid0(VALU_DEP_1) - s_and_b32 vcc_lo, exec_lo, s3 - s_cbranch_vccz .LBB0_26 -; %bb.4: ; %pass2 - s_load_b64 s[6:7], s[0:1], 0x88 - v_cndmask_b32_e64 v7, 0, s9, s3 - v_cndmask_b32_e64 v6, 0, s8, s3 - v_mov_b32_e32 v8, 0 - v_mov_b32_e32 v9, 0 - s_delay_alu instid0(VALU_DEP_3) - v_cmp_lt_u64_e32 vcc_lo, v[2:3], v[6:7] - s_cbranch_vccnz .LBB0_6 -; %bb.5: - v_cvt_f32_u32_e32 v1, v6 - v_sub_nc_u32_e32 v4, 0, v6 - s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_rcp_iflag_f32_e32 v1, v1 - s_waitcnt_depctr 0xfff - v_mul_f32_e32 v1, 0x4f7ffffe, v1 - v_cvt_u32_f32_e32 v1, v1 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_mul_lo_u32 v4, v4, v1 - v_mul_hi_u32 v4, v1, v4 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_nc_u32_e32 v1, v1, v4 - v_mul_hi_u32 v1, v2, v1 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_mul_lo_u32 v4, v1, v6 - v_add_nc_u32_e32 v5, 1, v1 - v_sub_nc_u32_e32 v4, v2, v4 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3) - v_cmp_ge_u32_e32 vcc_lo, v4, v6 - v_cndmask_b32_e32 v1, v1, v5, vcc_lo - v_sub_nc_u32_e32 v5, v4, v6 - s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) - v_readfirstlane_b32 s3, v1 - v_cndmask_b32_e32 v1, v4, v5, vcc_lo - s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) - s_add_i32 s10, s3, 1 - v_readfirstlane_b32 s11, v1 - v_mov_b32_e32 v1, s10 - s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) - v_cmp_ge_u32_e32 vcc_lo, s11, v6 - v_cndmask_b32_e32 v8, s3, v1, vcc_lo -.LBB0_6: - s_waitcnt lgkmcnt(0) - v_cmp_gt_i64_e64 s3, s[6:7], 0 - s_delay_alu instid0(VALU_DEP_1) - s_and_b32 vcc_lo, exec_lo, s3 - s_cbranch_vccz .LBB0_27 -; %bb.7: ; %pass4 - s_load_b64 s[10:11], s[0:1], 0x90 - s_waitcnt lgkmcnt(0) - v_cmp_gt_i64_e64 s3, s[10:11], 0 - s_delay_alu instid0(VALU_DEP_1) - s_and_b32 vcc_lo, exec_lo, s3 - s_cbranch_vccz .LBB0_28 -; %bb.8: ; %pass6 - s_load_b64 s[12:13], s[0:1], 0x98 - v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v4, 0 - v_mov_b32_e32 v5, 0 - s_mov_b32 s3, exec_lo - s_delay_alu instid0(VALU_DEP_2) - v_cmpx_le_u64_e64 s[6:7], v[0:1] - s_cbranch_execz .LBB0_10 -; %bb.9: - v_cvt_f32_u32_e32 v4, s6 - s_sub_i32 s14, 0, s6 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_rcp_iflag_f32_e32 v4, v4 - s_waitcnt_depctr 0xfff - v_mul_f32_e32 v4, 0x4f7ffffe, v4 - v_cvt_u32_f32_e32 v4, v4 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_mul_lo_u32 v5, s14, v4 - v_mul_hi_u32 v5, v4, v5 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_nc_u32_e32 v4, v4, v5 - v_mul_hi_u32 v4, v0, v4 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_mul_lo_u32 v5, v4, s6 - v_add_nc_u32_e32 v9, 1, v4 - v_sub_nc_u32_e32 v5, v0, v5 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_subrev_nc_u32_e32 v10, s6, v5 - v_cmp_le_u32_e32 vcc_lo, s6, v5 - v_dual_cndmask_b32 v5, v5, v10 :: v_dual_cndmask_b32 v4, v4, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_3) - v_cmp_le_u32_e32 vcc_lo, s6, v5 - v_mov_b32_e32 v5, 0 - v_add_nc_u32_e32 v9, 1, v4 - s_delay_alu instid0(VALU_DEP_1) - v_cndmask_b32_e32 v4, v4, v9, vcc_lo -.LBB0_10: - s_or_b32 exec_lo, exec_lo, s3 - s_clause 0x2 - s_load_b64 s[18:19], s[0:1], 0x68 - s_load_b64 s[16:17], s[0:1], 0x60 - s_load_b64 s[14:15], s[0:1], 0x58 - v_cmp_gt_i64_e64 s3, s[10:11], 0 - v_mov_b32_e32 v9, 0 - v_mov_b32_e32 v10, 0 - s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_cndmask_b32_e64 v12, 0, s11, s3 - v_cndmask_b32_e64 v11, 0, s10, s3 - s_mov_b32 s3, exec_lo - v_cmpx_ge_u64_e64 v[4:5], v[11:12] - s_cbranch_execz .LBB0_12 -; %bb.11: - v_cvt_f32_u32_e32 v9, v11 - v_sub_nc_u32_e32 v10, 0, v11 - s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_rcp_iflag_f32_e32 v9, v9 - s_waitcnt_depctr 0xfff - v_mul_f32_e32 v9, 0x4f7ffffe, v9 - v_cvt_u32_f32_e32 v9, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_mul_lo_u32 v10, v10, v9 - v_mul_hi_u32 v10, v9, v10 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_nc_u32_e32 v9, v9, v10 - v_mul_hi_u32 v9, v4, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_mul_lo_u32 v10, v9, v11 - v_add_nc_u32_e32 v13, 1, v9 - v_sub_nc_u32_e32 v10, v4, v10 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_sub_nc_u32_e32 v14, v10, v11 - v_cmp_ge_u32_e32 vcc_lo, v10, v11 - v_dual_cndmask_b32 v10, v10, v14 :: v_dual_cndmask_b32 v9, v9, v13 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) - v_cmp_ge_u32_e32 vcc_lo, v10, v11 - v_dual_mov_b32 v10, 0 :: v_dual_add_nc_u32 v13, 1, v9 - s_delay_alu instid0(VALU_DEP_1) - v_cndmask_b32_e32 v9, v9, v13, vcc_lo -.LBB0_12: - s_or_b32 exec_lo, exec_lo, s3 - v_mad_u64_u32 v[13:14], null, v2, s4, v[4:5] - v_mul_lo_u32 v7, v8, v7 - v_mul_hi_u32 v17, v8, v6 - v_mad_u64_u32 v[15:16], null, v9, v11, 0 - v_mul_lo_u32 v11, v8, v6 - s_waitcnt lgkmcnt(0) - v_mul_hi_u32 v20, v8, s12 - s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_3) - v_dual_mov_b32 v6, v14 :: v_dual_add_nc_u32 v7, v17, v7 - v_sub_co_u32 v11, vcc_lo, v2, v11 - s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_2) - v_mad_u64_u32 v[17:18], null, v2, s5, v[6:7] - v_mov_b32_e32 v6, v16 - v_sub_co_ci_u32_e32 v14, vcc_lo, v3, v7, vcc_lo - v_mad_u64_u32 v[18:19], null, v9, v12, v[6:7] - s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_3) | instid1(VALU_DEP_4) - v_mov_b32_e32 v6, v17 - v_sub_co_u32 v12, vcc_lo, s2, v13 - v_mul_lo_u32 v13, v11, s11 - v_mul_hi_u32 v17, v11, s10 - v_sub_co_ci_u32_e32 v16, vcc_lo, 0, v6, vcc_lo - s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3) - v_mul_lo_u32 v19, v12, s7 - v_mad_u64_u32 v[6:7], null, v12, s6, 0 - v_mul_lo_u32 v12, v16, s6 - v_mul_lo_u32 v14, v14, s10 - v_add_nc_u32_e32 v13, v17, v13 - v_mul_lo_u32 v11, v11, s10 - v_mul_lo_u32 v16, v8, s13 - v_mul_lo_u32 v17, v8, s12 - v_mov_b32_e32 v8, v18 - v_add3_u32 v7, v7, v19, v12 - v_add_nc_u32_e32 v12, v13, v14 - v_add_co_u32 v13, vcc_lo, v0, v6 - s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_4) - v_add_co_ci_u32_e32 v14, vcc_lo, 0, v7, vcc_lo - v_add_co_u32 v18, vcc_lo, v11, 1 - v_add_co_ci_u32_e32 v19, vcc_lo, 0, v12, vcc_lo - s_delay_alu instid0(VALU_DEP_4) - v_add_co_u32 v11, vcc_lo, v13, 1 - v_add_nc_u32_e32 v13, v20, v16 - v_add_co_ci_u32_e32 v12, vcc_lo, 0, v14, vcc_lo - v_add_co_u32 v14, vcc_lo, v18, v4 - v_add_co_ci_u32_e32 v16, vcc_lo, v19, v5, vcc_lo - v_add_co_u32 v17, vcc_lo, v17, 1 - v_add_co_ci_u32_e32 v18, vcc_lo, 0, v13, vcc_lo - s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) - v_sub_co_u32 v13, vcc_lo, v14, v15 - v_sub_co_ci_u32_e32 v14, vcc_lo, v16, v8, vcc_lo - s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) - v_add_co_u32 v8, vcc_lo, v17, v9 - v_add_co_ci_u32_e32 v9, vcc_lo, v18, v10, vcc_lo - v_cmp_lt_i64_e32 vcc_lo, 0, v[11:12] - v_cmp_ge_i64_e64 s2, s[14:15], v[11:12] - v_cmp_lt_i64_e64 s3, 0, v[13:14] - v_cmp_ge_i64_e64 s4, s[16:17], v[13:14] - v_cmp_lt_i64_e64 s5, 0, v[8:9] - v_cmp_ge_i64_e64 s6, s[18:19], v[8:9] - s_and_b32 s2, vcc_lo, s2 - s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) - s_and_b32 s3, s3, s4 - s_and_b32 s4, s5, s6 - s_and_b32 s2, s2, s3 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) - s_and_b32 s2, s4, s2 - s_and_b32 exec_lo, exec_lo, s2 - s_cbranch_execz .LBB0_24 -; %bb.13: ; %pass10 - v_cmp_gt_u64_e32 vcc_lo, s[8:9], v[2:3] - v_mov_b32_e32 v8, 0 - v_mov_b32_e32 v9, 0 - s_cbranch_vccnz .LBB0_15 -; %bb.14: - v_cvt_f32_u32_e32 v8, s8 - s_sub_i32 s2, 0, s8 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_rcp_iflag_f32_e32 v8, v8 - s_waitcnt_depctr 0xfff - v_mul_f32_e32 v8, 0x4f7ffffe, v8 - v_cvt_u32_f32_e32 v8, v8 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_mul_lo_u32 v9, s2, v8 - v_mul_hi_u32 v9, v8, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_nc_u32_e32 v8, v8, v9 - v_mul_hi_u32 v8, v2, v8 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_mul_lo_u32 v9, v8, s8 - v_add_nc_u32_e32 v10, 1, v8 - v_sub_nc_u32_e32 v9, v2, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_subrev_nc_u32_e32 v11, s8, v9 - v_cmp_le_u32_e32 vcc_lo, s8, v9 - v_dual_cndmask_b32 v9, v9, v11 :: v_dual_cndmask_b32 v8, v8, v10 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) - v_cmp_le_u32_e32 vcc_lo, s8, v9 - v_add_nc_u32_e32 v10, 1, v8 - s_delay_alu instid0(VALU_DEP_1) - v_cndmask_b32_e32 v8, v8, v10, vcc_lo -.LBB0_15: - s_load_b128 s[4:7], s[0:1], 0xc8 - v_mov_b32_e32 v9, 0 - v_mov_b32_e32 v10, 0 - s_mov_b32 s2, exec_lo - v_cmpx_le_u64_e64 s[10:11], v[4:5] - s_cbranch_execz .LBB0_17 -; %bb.16: - v_cvt_f32_u32_e32 v9, s10 - s_sub_i32 s3, 0, s10 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1) - v_rcp_iflag_f32_e32 v9, v9 - s_waitcnt_depctr 0xfff - v_mul_f32_e32 v9, 0x4f7ffffe, v9 - v_cvt_u32_f32_e32 v9, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_mul_lo_u32 v10, s3, v9 - v_mul_hi_u32 v10, v9, v10 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_add_nc_u32_e32 v9, v9, v10 - v_mul_hi_u32 v9, v4, v9 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_mul_lo_u32 v10, v9, s10 - v_add_nc_u32_e32 v11, 1, v9 - v_sub_nc_u32_e32 v10, v4, v10 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2) - v_subrev_nc_u32_e32 v12, s10, v10 - v_cmp_le_u32_e32 vcc_lo, s10, v10 - v_dual_cndmask_b32 v10, v10, v12 :: v_dual_cndmask_b32 v9, v9, v11 - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2) - v_cmp_le_u32_e32 vcc_lo, s10, v10 - v_dual_mov_b32 v10, 0 :: v_dual_add_nc_u32 v11, 1, v9 - s_delay_alu instid0(VALU_DEP_1) - v_cndmask_b32_e32 v9, v9, v11, vcc_lo -.LBB0_17: - s_or_b32 exec_lo, exec_lo, s2 - s_waitcnt lgkmcnt(0) - s_sub_u32 s2, 0, s4 - s_subb_u32 s3, 0, s5 - s_load_b64 s[0:1], s[0:1], 0xb8 - v_cmp_gt_i64_e64 s18, s[2:3], s[4:5] - s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_cndmask_b32_e64 v11, 0, -1, s18 - v_xor_b32_e32 v13, s4, v11 - v_xor_b32_e32 v14, s5, v11 - v_mov_b32_e32 v11, 0 - v_mov_b32_e32 v12, 0 - s_delay_alu instid0(VALU_DEP_3) - v_cmp_gt_i64_e32 vcc_lo, s[2:3], v[13:14] - s_cbranch_vccnz .LBB0_23 -; %bb.18: ; %L674.preheader - s_sub_u32 s4, 0, s6 - s_subb_u32 s5, 0, s7 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1) - v_cmp_gt_i64_e64 s18, s[4:5], s[6:7] - v_cndmask_b32_e64 v11, 0, -1, s18 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3) - v_readfirstlane_b32 s18, v11 - v_mov_b32_e32 v11, 0 - v_mov_b32_e32 v12, 0 - s_mov_b32 s19, s18 - s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) - s_xor_b64 s[18:19], s[18:19], s[6:7] - s_add_u32 s20, s18, s6 - v_cmp_ge_i64_e64 s6, s[18:19], s[4:5] - s_addc_u32 s5, s19, s7 - s_add_u32 s4, s20, 1 - s_addc_u32 s5, s5, 0 - s_branch .LBB0_20 -.LBB0_19: ; %L706 - ; in Loop: Header=BB0_20 Depth=1 - v_cmp_ne_u64_e32 vcc_lo, s[2:3], v[13:14] - s_add_u32 s2, s2, 1 - s_addc_u32 s3, s3, 0 - s_cbranch_vccz .LBB0_23 -.LBB0_20: ; %L674 - ; =>This Loop Header: Depth=1 - ; Child Loop BB0_22 Depth 2 - s_delay_alu instid0(VALU_DEP_1) - s_and_not1_b32 vcc_lo, exec_lo, s6 - s_cbranch_vccnz .LBB0_19 -; %bb.21: ; %L693.preheader - ; in Loop: Header=BB0_20 Depth=1 - s_mov_b64 s[6:7], s[4:5] -.LBB0_22: ; %L693 - ; Parent Loop BB0_20 Depth=1 - ; => This Inner Loop Header: Depth=2 - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) - v_add_f64 v[11:12], v[11:12], 2.0 - s_add_u32 s6, s6, -1 - s_addc_u32 s7, s7, -1 - s_cmp_lg_u64 s[6:7], 0 - s_cbranch_scc1 .LBB0_22 - s_branch .LBB0_19 -.LBB0_23: ; %L732 - v_mad_u64_u32 v[13:14], null, v8, s8, v[9:10] - v_mad_u64_u32 v[15:16], null, v8, s12, v[9:10] - v_cmp_gt_i64_e64 s2, s[16:17], 0 - s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_4) - v_mov_b32_e32 v9, v14 - v_sub_co_u32 v13, vcc_lo, v2, v13 - s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) - v_mov_b32_e32 v10, v16 - v_cndmask_b32_e64 v14, 0, s16, s2 - s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_4) - v_mad_u64_u32 v[16:17], null, v8, s9, v[9:10] - v_mad_u64_u32 v[17:18], null, v8, s13, v[10:11] - v_cndmask_b32_e64 v10, 0, s17, s2 - v_mad_u64_u32 v[8:9], null, v15, v14, v[4:5] - v_cmp_gt_i64_e64 s2, s[14:15], 0 - v_mov_b32_e32 v4, v16 - s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_1) | instid1(VALU_DEP_3) - v_mul_lo_u32 v5, v15, v10 - v_mul_lo_u32 v10, v17, v14 - v_sub_co_ci_u32_e32 v2, vcc_lo, v3, v4, vcc_lo - v_mul_lo_u32 v4, v13, s11 - s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3) - v_add3_u32 v9, v10, v9, v5 - v_mul_lo_u32 v5, v2, s10 - s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_3) - v_mad_u64_u32 v[2:3], null, v13, s10, v[8:9] - v_cndmask_b32_e64 v8, 0, s14, s2 - v_cndmask_b32_e64 v9, 0, s15, s2 - v_add3_u32 v5, v5, v3, v4 - s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_4) - v_mul_lo_u32 v9, v2, v9 - v_mad_u64_u32 v[3:4], null, v2, v8, v[0:1] - s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) - v_mul_lo_u32 v0, v5, v8 - v_add3_u32 v1, v0, v4, v9 - s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2) - v_add_co_u32 v0, vcc_lo, v3, v6 - v_add_co_ci_u32_e32 v1, vcc_lo, v1, v7, vcc_lo - s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1) - v_lshlrev_b64 v[0:1], 3, v[0:1] - s_waitcnt lgkmcnt(0) - v_add_co_u32 v0, vcc_lo, s0, v0 - s_delay_alu instid0(VALU_DEP_2) - v_add_co_ci_u32_e32 v1, vcc_lo, s1, v1, vcc_lo - global_store_b64 v[0:1], v[11:12], off -.LBB0_24: ; %Flow13 - s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) - s_endpgm -.LBB0_25: ; %fail - v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 - v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 - s_clause 0x3 - flat_store_b8 v[0:1], v2 offset:3 - flat_store_b8 v[0:1], v2 offset:2 - flat_store_b8 v[0:1], v2 offset:1 - flat_store_b8 v[0:1], v3 - s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) - s_endpgm -.LBB0_26: ; %fail1 - v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 - v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 - s_clause 0x3 - flat_store_b8 v[0:1], v2 offset:3 - flat_store_b8 v[0:1], v2 offset:2 - flat_store_b8 v[0:1], v2 offset:1 - flat_store_b8 v[0:1], v3 - s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) - s_endpgm -.LBB0_27: ; %fail3 - v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 - v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 - s_clause 0x3 - flat_store_b8 v[0:1], v2 offset:3 - flat_store_b8 v[0:1], v2 offset:2 - flat_store_b8 v[0:1], v2 offset:1 - flat_store_b8 v[0:1], v3 - s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) - s_endpgm -.LBB0_28: ; %fail5 - v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v3, 1 - v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s13 - s_clause 0x3 - flat_store_b8 v[0:1], v2 offset:3 - flat_store_b8 v[0:1], v2 offset:2 - flat_store_b8 v[0:1], v2 offset:1 - flat_store_b8 v[0:1], v3 - s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) - s_endpgm - .section .rodata,#alloc - .p2align 6 - .amdhsa_kernel _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - .amdhsa_group_segment_fixed_size 0 - .amdhsa_private_segment_fixed_size 0 - .amdhsa_kernarg_size 224 - .amdhsa_user_sgpr_count 15 - .amdhsa_user_sgpr_dispatch_ptr 0 - .amdhsa_user_sgpr_queue_ptr 0 - .amdhsa_user_sgpr_kernarg_segment_ptr 1 - .amdhsa_user_sgpr_dispatch_id 0 - .amdhsa_user_sgpr_private_segment_size 0 - .amdhsa_wavefront_size32 1 - .amdhsa_uses_dynamic_stack 0 - .amdhsa_enable_private_segment 0 - .amdhsa_system_sgpr_workgroup_id_x 1 - .amdhsa_system_sgpr_workgroup_id_y 0 - .amdhsa_system_sgpr_workgroup_id_z 0 - .amdhsa_system_sgpr_workgroup_info 0 - .amdhsa_system_vgpr_workitem_id 0 - .amdhsa_next_free_vgpr 21 - .amdhsa_next_free_sgpr 21 - .amdhsa_float_round_mode_32 0 - .amdhsa_float_round_mode_16_64 0 - .amdhsa_float_denorm_mode_32 3 - .amdhsa_float_denorm_mode_16_64 3 - .amdhsa_dx10_clamp 1 - .amdhsa_ieee_mode 1 - .amdhsa_fp16_overflow 0 - .amdhsa_workgroup_processor_mode 1 - .amdhsa_memory_ordered 1 - .amdhsa_forward_progress 0 - .amdhsa_shared_vgpr_count 0 - .amdhsa_exception_fp_ieee_invalid_op 0 - .amdhsa_exception_fp_denorm_src 0 - .amdhsa_exception_fp_ieee_div_zero 0 - .amdhsa_exception_fp_ieee_overflow 0 - .amdhsa_exception_fp_ieee_underflow 0 - .amdhsa_exception_fp_ieee_inexact 0 - .amdhsa_exception_int_div_zero 0 - .end_amdhsa_kernel - .text -.Lfunc_end0: - .size _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_, .Lfunc_end0-_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - ; -- End function - .section .AMDGPU.csdata -; Kernel info: -; codeLenInByte = 2484 -; NumSgprs: 23 -; NumVgprs: 21 -; ScratchSize: 0 -; MemoryBound: 0 -; FloatMode: 240 -; IeeeMode: 1 -; LDSByteSize: 0 bytes/workgroup (compile time only) -; SGPRBlocks: 2 -; VGPRBlocks: 2 -; NumSGPRsForWavesPerEU: 23 -; NumVGPRsForWavesPerEU: 21 -; Occupancy: 16 -; WaveLimiterHint : 0 -; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0 -; COMPUTE_PGM_RSRC2:USER_SGPR: 15 -; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0 -; COMPUTE_PGM_RSRC2:TGID_X_EN: 1 -; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0 -; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0 -; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0 - .text - .p2alignl 7, 3214868480 - .fill 96, 4, 3214868480 - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .ident "clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)" - .section ".note.GNU-stack" - .amdgpu_metadata ---- -amdhsa.kernels: - - .args: - - .name: state - .offset: 0 - .size: 88 - .value_kind: by_value - - .offset: 88 - .size: 72 - .value_kind: by_value - - .offset: 160 - .size: 40 - .value_kind: by_value - - .offset: 200 - .size: 8 - .value_kind: by_value - - .offset: 208 - .size: 8 - .value_kind: by_value - - .offset: 216 - .size: 8 - .value_kind: by_value - .group_segment_fixed_size: 0 - .kernarg_segment_align: 8 - .kernarg_segment_size: 224 - .language: OpenCL C - .language_version: - - 2 - - 0 - .max_flat_workgroup_size: 1024 - .name: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_ - .private_segment_fixed_size: 0 - .sgpr_count: 23 - .sgpr_spill_count: 0 - .symbol: _Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_.kd - .uses_dynamic_stack: false - .vgpr_count: 21 - .vgpr_spill_count: 0 - .wavefront_size: 32 -amdhsa.target: amdgcn-amd-amdhsa--gfx1100 -amdhsa.version: - - 1 - - 1 -... - - .end_amdgpu_metadata diff --git a/devcode_size/gpu_kernel_xx!_1.lowered.jl b/devcode_size/gpu_kernel_xx!_1.lowered.jl deleted file mode 100644 index 9f3566772..000000000 --- a/devcode_size/gpu_kernel_xx!_1.lowered.jl +++ /dev/null @@ -1,46 +0,0 @@ -CodeInfo( -1 ─ Core.NewvarNode(:(val)) -│ Core.NewvarNode(:(@_8)) -│ Core.NewvarNode(:(res)) -│ Core.NewvarNode(:(idx)) -│ %5 = (KernelAbstractions.__validindex)(__ctx__) -└── goto #9 if not %5 -2 ─ idx = KernelAbstractions.__index_Global_Linear(__ctx__) -│ %8 = Main.eltype(tensor) -│ res = Main.zero(%8) -│ %10 = -Nx -│ %11 = %10:Nx -│ @_8 = Base.iterate(%11) -│ %13 = @_8 === nothing -│ %14 = Base.not_int(%13) -└── goto #8 if not %14 -3 ┄ %16 = @_8 -│ p = Core.getfield(%16, 1) -│ %18 = Core.getfield(%16, 2) -│ %19 = -Ny -│ %20 = %19:Ny -│ @_11 = Base.iterate(%20) -│ %22 = @_11 === nothing -│ %23 = Base.not_int(%22) -└── goto #6 if not %23 -4 ┄ %25 = @_11 -│ q = Core.getfield(%25, 1) -│ %27 = Core.getfield(%25, 2) -│ res = res + 2.0 -│ @_11 = Base.iterate(%20, %27) -│ %30 = @_11 === nothing -│ %31 = Base.not_int(%30) -└── goto #6 if not %31 -5 ─ goto #4 -6 ┄ @_8 = Base.iterate(%11, %18) -│ %35 = @_8 === nothing -│ %36 = Base.not_int(%35) -└── goto #8 if not %36 -7 ─ goto #3 -8 ┄ nothing -│ Base.setindex!(tensor, res, idx) -│ val = res -│ nothing -└── val -9 ┄ return Main.nothing -) diff --git a/devcode_size/gpu_kernel_xx!_1.opt.ll b/devcode_size/gpu_kernel_xx!_1.opt.ll deleted file mode 100644 index e08614983..000000000 --- a/devcode_size/gpu_kernel_xx!_1.opt.ll +++ /dev/null @@ -1,195 +0,0 @@ -; ModuleID = 'start' -source_filename = "start" -target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:10:11:12:13" -target triple = "amdgcn-amd-amdhsa" - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.x() #0 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.x() #0 - -; Function Attrs: cold noreturn nounwind -declare void @llvm.amdgcn.endpgm() #1 - -; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn -declare i64 @llvm.smax.i64(i64, i64) #2 - -define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #3 { -conversion: - %.fca.0.0.0.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 0, 0, 0, 0 - %.fca.0.0.1.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 0, 0, 1, 0 - %.fca.0.0.2.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 0, 0, 2, 0 - %.fca.1.0.0.0.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 0, 0, 0, 0 - %.fca.1.0.0.1.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 0, 0, 1, 0 - %.fca.1.1.0.0.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 1, 0, 0, 0 - %.fca.1.1.0.1.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 1, 0, 1, 0 - %.fca.1.1.0.2.0.extract = extractvalue { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, 1, 1, 0, 2, 0 - %.fca.1.extract = extractvalue { [3 x i64], i8 addrspace(1)*, i64 } %1, 1 - %5 = call i32 @llvm.amdgcn.workitem.id.x(), !range !7 - %6 = call i64 @llvm.smax.i64(i64 %.fca.1.0.0.1.0.extract, i64 0) - %7 = icmp sgt i64 %.fca.1.0.0.0.0.extract, 0 - br i1 %7, label %pass, label %fail - -L674: ; preds = %L674.preheader, %L706 - %value_phi17 = phi i64 [ %10, %L706 ], [ %65, %L674.preheader ] - %value_phi18 = phi double [ %value_phi26, %L706 ], [ 0.000000e+00, %L674.preheader ] - br i1 %.not127.not, label %L706, label %L693 - -L693: ; preds = %L693, %L674 - %value_phi22 = phi double [ %8, %L693 ], [ %value_phi18, %L674 ] - %value_phi23 = phi i64 [ %9, %L693 ], [ %67, %L674 ] - %8 = fadd double %value_phi22, 2.000000e+00 - %.not128 = icmp eq i64 %value_phi23, %value_phi19 - %9 = add i64 %value_phi23, 1 - br i1 %.not128, label %L706, label %L693 - -L706: ; preds = %L693, %L674 - %value_phi26 = phi double [ %value_phi18, %L674 ], [ %8, %L693 ] - %.not129 = icmp eq i64 %value_phi17, %value_phi - %10 = add i64 %value_phi17, 1 - br i1 %.not129, label %L732, label %L674 - -L732: ; preds = %pass10, %L706 - %value_phi29 = phi double [ 0.000000e+00, %pass10 ], [ %value_phi26, %L706 ] - %11 = add i64 %64, %32 - %reass.add137 = add i64 %11, %reass.mul135 - %reass.mul138 = mul i64 %reass.add137, %60 - %12 = add i64 %reass.mul138, %31 - %13 = add i64 %12, %reass.mul - %14 = bitcast i8 addrspace(1)* %.fca.1.extract to double addrspace(1)* - %15 = getelementptr inbounds double, double addrspace(1)* %14, i64 %13 - store double %value_phi29, double addrspace(1)* %15, align 8, !tbaa !8 - br label %L738 - -L738: ; preds = %pass6, %L732 - ret void - -fail: ; preds = %conversion - %state.i.fca.0.extract.i = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 - %16 = inttoptr i64 %state.i.fca.0.extract.i to i32* - store i32 1, i32* %16, align 1 - call void @llvm.amdgcn.endpgm() - unreachable - -pass: ; preds = %conversion - %17 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !11 - %18 = zext i32 %17 to i64 - %19 = udiv i64 %18, %.fca.1.0.0.0.0.extract - %20 = mul i64 %19, %.fca.1.0.0.0.0.extract - %21 = icmp sgt i64 %.fca.1.0.0.1.0.extract, 0 - br i1 %21, label %pass2, label %fail1 - -fail1: ; preds = %pass - %state.i.fca.0.extract.i28 = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 - %22 = inttoptr i64 %state.i.fca.0.extract.i28 to i32* - store i32 1, i32* %22, align 1 - call void @llvm.amdgcn.endpgm() - unreachable - -pass2: ; preds = %pass - %23 = udiv i64 %19, %6 - %24 = mul i64 %23, %6 - %25 = sub i64 %19, %24 - %26 = call i64 @llvm.smax.i64(i64 %.fca.1.1.0.1.0.extract, i64 0) - %27 = icmp sgt i64 %.fca.1.1.0.0.0.extract, 0 - br i1 %27, label %pass4, label %fail3 - -fail3: ; preds = %pass2 - %state.i.fca.0.extract.i42 = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 - %28 = inttoptr i64 %state.i.fca.0.extract.i42 to i32* - store i32 1, i32* %28, align 1 - call void @llvm.amdgcn.endpgm() - unreachable - -pass4: ; preds = %pass2 - %29 = icmp sgt i64 %.fca.1.1.0.1.0.extract, 0 - br i1 %29, label %pass6, label %fail5 - -fail5: ; preds = %pass4 - %state.i.fca.0.extract.i56 = extractvalue { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state, 0 - %30 = inttoptr i64 %state.i.fca.0.extract.i56 to i32* - store i32 1, i32* %30, align 1 - call void @llvm.amdgcn.endpgm() - unreachable - -pass6: ; preds = %pass4 - %31 = zext i32 %5 to i64 - %32 = udiv i64 %31, %.fca.1.1.0.0.0.extract - %33 = udiv i64 %32, %26 - %34 = mul i64 %33, %26 - %35 = add i64 %20, %32 - %reass.add = sub i64 %18, %35 - %reass.mul = mul i64 %reass.add, %.fca.1.1.0.0.0.extract - %36 = add nuw nsw i64 %31, 1 - %37 = add i64 %36, %reass.mul - %38 = mul i64 %25, %.fca.1.1.0.1.0.extract - %39 = add i64 %38, 1 - %40 = add i64 %39, %32 - %41 = sub i64 %40, %34 - %42 = mul i64 %23, %.fca.1.1.0.2.0.extract - %43 = add i64 %42, 1 - %44 = add i64 %43, %33 - %45 = icmp sgt i64 %37, 0 - %46 = icmp sle i64 %37, %.fca.0.0.0.0.extract - %47 = and i1 %45, %46 - %48 = icmp sgt i64 %41, 0 - %49 = icmp sle i64 %41, %.fca.0.0.1.0.extract - %50 = and i1 %48, %49 - %51 = icmp sgt i64 %44, 0 - %52 = icmp sle i64 %44, %.fca.0.0.2.0.extract - %53 = and i1 %51, %52 - %54 = and i1 %47, %50 - %55 = and i1 %53, %54 - br i1 %55, label %pass10, label %L738 - -pass10: ; preds = %pass6 - %56 = udiv i64 %19, %.fca.1.0.0.1.0.extract - %57 = mul i64 %56, %.fca.1.0.0.1.0.extract - %58 = udiv i64 %32, %.fca.1.1.0.1.0.extract - %59 = mul i64 %56, %.fca.1.1.0.2.0.extract - %60 = call i64 @llvm.smax.i64(i64 %.fca.0.0.0.0.extract, i64 0) - %61 = call i64 @llvm.smax.i64(i64 %.fca.0.0.1.0.extract, i64 0) - %62 = add i64 %57, %58 - %reass.add134 = sub i64 %19, %62 - %reass.mul135 = mul i64 %reass.add134, %.fca.1.1.0.1.0.extract - %63 = add i64 %58, %59 - %64 = mul i64 %63, %61 - %65 = sub i64 0, %2 - %.not = icmp sgt i64 %65, %2 - %66 = sext i1 %.not to i64 - %value_phi = xor i64 %66, %2 - %.not125.not = icmp slt i64 %value_phi, %65 - br i1 %.not125.not, label %L732, label %L674.preheader - -L674.preheader: ; preds = %pass10 - %67 = sub i64 0, %3 - %.not126 = icmp sgt i64 %67, %3 - %68 = sext i1 %.not126 to i64 - %value_phi19 = xor i64 %68, %3 - %.not127.not = icmp slt i64 %value_phi19, %67 - br label %L674 -} - -attributes #0 = { nounwind readnone speculatable willreturn } -attributes #1 = { cold noreturn nounwind } -attributes #2 = { nocallback nofree nosync nounwind readnone speculatable willreturn } -attributes #3 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } - -!llvm.module.flags = !{!0, !1, !2, !3} -!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} -!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} -!julia.kernel = !{!6} - -!0 = !{i32 2, !"Dwarf Version", i32 4} -!1 = !{i32 2, !"Debug Info Version", i32 3} -!2 = !{i32 1, !"wchar_size", i32 4} -!3 = !{i32 7, !"PIC Level", i32 1} -!4 = !{i32 2, i32 0} -!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} -!6 = !{void ({ i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} -!7 = !{i32 0, i32 1023} -!8 = !{!9, !9, i64 0, i64 0} -!9 = !{!"custom_tbaa_addrspace(1)", !10, i64 0} -!10 = !{!"custom_tbaa"} -!11 = !{i32 0, i32 -2} diff --git a/devcode_size/gpu_kernel_xx!_1.typed.jl b/devcode_size/gpu_kernel_xx!_1.typed.jl deleted file mode 100644 index 4ab2ab9d7..000000000 --- a/devcode_size/gpu_kernel_xx!_1.typed.jl +++ /dev/null @@ -1,2303 +0,0 @@ -CodeInfo( - @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:94 within `gpu_kernel_xx!` - ┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:144 within `#__validindex` - │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` - ││┌ @ Base.jl:37 within `getproperty` -1 ───│││ %1 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{3, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}} -│ │└└ -│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %2 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ ││││││ %3 = Base.llvmcall(%2, UInt32, Tuple{})::UInt32 -│ ││││└└ -│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ │││││ %4 = Base.add_int(%3, 0x00000001)::UInt32 -│ ││└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %5 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%5, UInt32, Tuple{})::UInt32 -│ ││└└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %7 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%7, UInt32, Tuple{})::UInt32 -│ │└└└└└ -│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %9 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ ││││││ %10 = Base.llvmcall(%9, UInt32, Tuple{})::UInt32 -│ ││││└└ -│ ││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ │││││ %11 = Base.add_int(%10, 0x00000001)::UInt32 -│ ││└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %12 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%12, UInt32, Tuple{})::UInt32 -│ ││└└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ ││││││ %14 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ ││││││ Base.llvmcall(%14, UInt32, Tuple{})::UInt32 -│ │└└└└└ -│ │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` -│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` -│ │││┌ @ Base.jl:37 within `getproperty` -│ ││││ %16 = Base.getfield(%1, :blocks)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││└└ -│ ││┌ @ abstractarray.jl:1291 within `getindex` -│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ ││││┌ @ indices.jl:359 within `_to_indices1` -│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ ││││││┌ @ number.jl:7 within `convert` -│ │││││││┌ @ boot.jl:784 within `Int64` -│ ││││││││┌ @ boot.jl:708 within `toInt64` -│ │││││││││ %17 = Core.zext_int(Core.Int64, %4)::Int64 -│ │││└└└└└└ -│ │││┌ @ abstractarray.jl:1335 within `_getindex` -└────││││ goto #6 if not false - ││││┌ @ abstractarray.jl:700 within `checkbounds` -2 ───│││││ %19 = Core.tuple(%17)::Tuple{Int64} -│ │││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ │││││┌ @ abstractarray.jl:388 within `eachindex` -│ ││││││┌ @ multidimensional.jl:455 within `length` -│ │││││││┌ @ multidimensional.jl:453 within `size` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %20 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││││└ -│ ││││││││┌ @ tuple.jl:293 within `map` -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %21 = Base.getfield(%20, 1, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %22 = Base.getfield(%21, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %23 = Base.getfield(%20, 2, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %24 = Base.getfield(%23, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %25 = Base.getfield(%20, 3, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %26 = Base.getfield(%25, :stop)::Int64 -│ │││││││└└└└ -│ │││││││┌ @ tuple.jl:595 within `prod` -│ ││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 -│ │││││││││ %27 = Base.mul_int(%22, %24)::Int64 -│ │││││││││ %28 = Base.mul_int(%27, %26)::Int64 -│ ││││││└└└ -│ ││││││┌ @ range.jl:469 within `oneto` -│ │││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││┌ @ int.jl:83 within `<` -│ ││││││││││ %29 = Base.slt_int(%28, 0)::Bool -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││ %30 = Core.ifelse(%29, 0, %28)::Int64 -│ │││││└└└└└ -│ │││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││┌ @ int.jl:86 within `-` -│ │││││││ %31 = Base.sub_int(%17, 1)::Int64 -│ ││││││└ -│ ││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││ %32 = Base.bitcast(UInt64, %31)::UInt64 -│ ││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││ %33 = Base.bitcast(UInt64, %30)::UInt64 -│ ││││││└└ -│ ││││││┌ @ int.jl:513 within `<` -│ │││││││ %34 = Base.ult_int(%32, %33)::Bool -│ │││││└└ -│ │││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││ goto #4 if not %34 -3 ───│││││ goto #5 -4 ───│││││ invoke Base.throw_boundserror(%16::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %19::Tuple{Int64})::Union{} -└────│││││ unreachable -5 ───│││││ nothing::Nothing - ││││└ - ││││ @ abstractarray.jl:1336 within `_getindex` - ││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` - │││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` - ││││││┌ @ abstractarray.jl:2962 within `_ind2sub` - │││││││┌ @ multidimensional.jl:344 within `axes` - ││││││││┌ @ Base.jl:37 within `getproperty` -6 ┄──│││││││││ %40 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││││└ -│ ││││││││┌ @ tuple.jl:293 within `map` -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %41 = Base.getfield(%40, 1, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %42 = Base.getfield(%41, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %43 = Base.slt_int(%42, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %44 = Core.ifelse(%43, 0, %42)::Int64 -│ │││││││││└└└└└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %45 = Base.getfield(%40, 2, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %46 = Base.getfield(%45, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %47 = Base.slt_int(%46, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %48 = Core.ifelse(%47, 0, %46)::Int64 -│ │││││││└└└└└└└└ -│ │││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %49 = Base.sub_int(%17, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` -│ ││││││││┌ @ abstractarray.jl:3020 within `_div` -│ │││││││││┌ @ int.jl:295 within `div` -│ ││││││││││ %50 = Base.checked_sdiv_int(%49, %44)::Int64 -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` -│ ││││││││┌ @ int.jl:88 within `*` -│ │││││││││ %51 = Base.mul_int(%44, %50)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %52 = Base.sub_int(%49, %51)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:87 within `+` -│ │││││││││ %53 = Base.add_int(%52, 1)::Int64 -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 -│ ││││││││┌ @ abstractarray.jl:3020 within `_div` -│ │││││││││┌ @ int.jl:295 within `div` -│ ││││││││││ %54 = Base.checked_sdiv_int(%50, %48)::Int64 -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 -│ ││││││││┌ @ int.jl:88 within `*` -│ │││││││││ %55 = Base.mul_int(%48, %54)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %56 = Base.sub_int(%50, %55)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:87 within `+` -│ │││││││││ %57 = Base.add_int(%56, 1)::Int64 -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 -│ ││││││││┌ @ abstractarray.jl:3018 within `_lookup` -│ │││││││││┌ @ int.jl:87 within `+` -│ ││││││││││ %58 = Base.add_int(%54, 1)::Int64 -│ ││││└└└└└└ -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────│││││ goto #11 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -7 ───││││││ %60 = Core.tuple(%53, %57, %58)::Tuple{Int64, Int64, Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 -│ ││││││┌ @ multidimensional.jl:344 within `axes` -│ │││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││ %61 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││││└ -│ │││││││┌ @ tuple.jl:293 within `map` -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %62 = Base.getfield(%61, 1, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %63 = Base.getfield(%62, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %64 = Base.slt_int(%63, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %65 = Core.ifelse(%64, 0, %63)::Int64 -│ ││││││││└└└└└└ -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %66 = Base.getfield(%61, 2, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %67 = Base.getfield(%66, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %68 = Base.slt_int(%67, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %69 = Core.ifelse(%68, 0, %67)::Int64 -│ ││││││││└└└└└└ -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %70 = Base.getfield(%61, 3, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %71 = Base.getfield(%70, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %72 = Base.slt_int(%71, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %73 = Core.ifelse(%72, 0, %71)::Int64 -│ ││││││└└└└└└└└ -│ ││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %74 = Base.sub_int(%53, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %75 = Base.bitcast(UInt64, %74)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %76 = Base.bitcast(UInt64, %65)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %77 = Base.ult_int(%75, %76)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %78 = Base.sub_int(%57, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %79 = Base.bitcast(UInt64, %78)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %80 = Base.bitcast(UInt64, %69)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %81 = Base.ult_int(%79, %80)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %82 = Base.sub_int(%58, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %83 = Base.bitcast(UInt64, %82)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %84 = Base.bitcast(UInt64, %73)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %85 = Base.ult_int(%83, %84)::Bool -│ │││││││└└ -│ │││││││┌ @ bool.jl:38 within `&` -│ ││││││││ %86 = Base.and_int(%85, true)::Bool -│ │││││││└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ │││││││┌ @ bool.jl:38 within `&` -│ ││││││││ %87 = Base.and_int(%81, %86)::Bool -│ │││││││└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` -│ │││││││┌ @ bool.jl:38 within `&` -│ ││││││││ %88 = Base.and_int(%77, %87)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #9 if not %88 -8 ───││││││ goto #10 -9 ───││││││ invoke Base.throw_boundserror(%16::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %60::Tuple{Int64, Int64, Int64})::Union{} -└────││││││ unreachable -10 ──││││││ nothing::Nothing - │││││└ - │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - │││││┌ @ Base.jl:37 within `getproperty` -11 ┄─││││││ %94 = Base.getfield(%16, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:322 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %95 = Base.getfield(%94, 1, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ │││││││┌ @ range.jl:937 within `getindex` -└────││││││││ goto #15 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -12 ──││││││││││ %97 = Base.slt_int(0, %53)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %98 = Base.getfield(%95, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %99 = Base.sle_int(%53, %98)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %100 = Base.and_int(%97, %99)::Bool -│ ││││││││└ -└────││││││││ goto #14 if not %100 -13 ──││││││││ goto #15 -14 ──││││││││ invoke Base.throw_boundserror(%95::Base.OneTo{Int64}, %53::Int64)::Union{} -└────││││││││ unreachable -15 ┄─││││││││ goto #16 -16 ──││││││││ goto #17 - ││││││└└ - ││││││┌ @ essentials.jl:374 within `tail` -17 ──│││││││ %107 = Core.getfield(%94, 2)::Base.OneTo{Int64} -│ │││││││ %108 = Core.getfield(%94, 3)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ │││││││┌ @ range.jl:937 within `getindex` -└────││││││││ goto #21 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -18 ──││││││││││ %110 = Base.slt_int(0, %57)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %111 = Base.getfield(%107, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %112 = Base.sle_int(%57, %111)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %113 = Base.and_int(%110, %112)::Bool -│ ││││││││└ -└────││││││││ goto #20 if not %113 -19 ──││││││││ goto #21 -20 ──││││││││ invoke Base.throw_boundserror(%107::Base.OneTo{Int64}, %57::Int64)::Union{} -└────││││││││ unreachable -21 ┄─││││││││ goto #22 -22 ──││││││││ goto #23 - ││││││││ @ range.jl:937 within `getindex` -23 ──││││││││ goto #27 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -24 ──││││││││││ %121 = Base.slt_int(0, %58)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %122 = Base.getfield(%108, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %123 = Base.sle_int(%58, %122)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %124 = Base.and_int(%121, %123)::Bool -│ ││││││││└ -└────││││││││ goto #26 if not %124 -25 ──││││││││ goto #27 -26 ──││││││││ invoke Base.throw_boundserror(%108::Base.OneTo{Int64}, %58::Int64)::Union{} -└────││││││││ unreachable -27 ┄─││││││││ goto #28 -28 ──││││││││ goto #29 -29 ──││││││││ goto #30 -30 ──││││││││ goto #31 -31 ──││││││││ goto #32 -32 ──││││││││ goto #33 -33 ──││││││││ goto #34 - ││└└└└└└ - ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - │││┌ @ Base.jl:37 within `getproperty` -34 ──││││ %136 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││└└ -│ ││┌ @ abstractarray.jl:1291 within `getindex` -│ │││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ ││││┌ @ indices.jl:359 within `_to_indices1` -│ │││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ ││││││┌ @ number.jl:7 within `convert` -│ │││││││┌ @ boot.jl:784 within `Int64` -│ ││││││││┌ @ boot.jl:708 within `toInt64` -│ │││││││││ %137 = Core.zext_int(Core.Int64, %11)::Int64 -│ │││└└└└└└ -│ │││┌ @ abstractarray.jl:1335 within `_getindex` -└────││││ goto #39 if not false - ││││┌ @ abstractarray.jl:700 within `checkbounds` -35 ──│││││ %139 = Core.tuple(%137)::Tuple{Int64} -│ │││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ │││││┌ @ abstractarray.jl:388 within `eachindex` -│ ││││││┌ @ multidimensional.jl:455 within `length` -│ │││││││┌ @ multidimensional.jl:453 within `size` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %140 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││││└ -│ ││││││││┌ @ tuple.jl:293 within `map` -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %141 = Base.getfield(%140, 1, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %142 = Base.getfield(%141, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %143 = Base.getfield(%140, 2, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %144 = Base.getfield(%143, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %145 = Base.getfield(%140, 3, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %146 = Base.getfield(%145, :stop)::Int64 -│ │││││││└└└└ -│ │││││││┌ @ tuple.jl:595 within `prod` -│ ││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 -│ │││││││││ %147 = Base.mul_int(%142, %144)::Int64 -│ │││││││││ %148 = Base.mul_int(%147, %146)::Int64 -│ ││││││└└└ -│ ││││││┌ @ range.jl:469 within `oneto` -│ │││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││┌ @ int.jl:83 within `<` -│ ││││││││││ %149 = Base.slt_int(%148, 0)::Bool -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││ %150 = Core.ifelse(%149, 0, %148)::Int64 -│ │││││└└└└└ -│ │││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││┌ @ int.jl:86 within `-` -│ │││││││ %151 = Base.sub_int(%137, 1)::Int64 -│ ││││││└ -│ ││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││ %152 = Base.bitcast(UInt64, %151)::UInt64 -│ ││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││ %153 = Base.bitcast(UInt64, %150)::UInt64 -│ ││││││└└ -│ ││││││┌ @ int.jl:513 within `<` -│ │││││││ %154 = Base.ult_int(%152, %153)::Bool -│ │││││└└ -│ │││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││ goto #37 if not %154 -36 ──│││││ goto #38 -37 ──│││││ invoke Base.throw_boundserror(%136::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %139::Tuple{Int64})::Union{} -└────│││││ unreachable -38 ──│││││ nothing::Nothing - ││││└ - ││││ @ abstractarray.jl:1336 within `_getindex` - ││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` - │││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` - ││││││┌ @ abstractarray.jl:2962 within `_ind2sub` - │││││││┌ @ multidimensional.jl:344 within `axes` - ││││││││┌ @ Base.jl:37 within `getproperty` -39 ┄─│││││││││ %160 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││││└ -│ ││││││││┌ @ tuple.jl:293 within `map` -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %161 = Base.getfield(%160, 1, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %162 = Base.getfield(%161, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %163 = Base.slt_int(%162, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %164 = Core.ifelse(%163, 0, %162)::Int64 -│ │││││││││└└└└└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %165 = Base.getfield(%160, 2, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %166 = Base.getfield(%165, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %167 = Base.slt_int(%166, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %168 = Core.ifelse(%167, 0, %166)::Int64 -│ │││││││└└└└└└└└ -│ │││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %169 = Base.sub_int(%137, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` -│ ││││││││┌ @ abstractarray.jl:3020 within `_div` -│ │││││││││┌ @ int.jl:295 within `div` -│ ││││││││││ %170 = Base.checked_sdiv_int(%169, %164)::Int64 -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` -│ ││││││││┌ @ int.jl:88 within `*` -│ │││││││││ %171 = Base.mul_int(%164, %170)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %172 = Base.sub_int(%169, %171)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:87 within `+` -│ │││││││││ %173 = Base.add_int(%172, 1)::Int64 -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 -│ ││││││││┌ @ abstractarray.jl:3020 within `_div` -│ │││││││││┌ @ int.jl:295 within `div` -│ ││││││││││ %174 = Base.checked_sdiv_int(%170, %168)::Int64 -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 -│ ││││││││┌ @ int.jl:88 within `*` -│ │││││││││ %175 = Base.mul_int(%168, %174)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %176 = Base.sub_int(%170, %175)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:87 within `+` -│ │││││││││ %177 = Base.add_int(%176, 1)::Int64 -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 -│ ││││││││┌ @ abstractarray.jl:3018 within `_lookup` -│ │││││││││┌ @ int.jl:87 within `+` -│ ││││││││││ %178 = Base.add_int(%174, 1)::Int64 -│ ││││└└└└└└ -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────│││││ goto #44 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -40 ──││││││ %180 = Core.tuple(%173, %177, %178)::Tuple{Int64, Int64, Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 -│ ││││││┌ @ multidimensional.jl:344 within `axes` -│ │││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││ %181 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││││└ -│ │││││││┌ @ tuple.jl:293 within `map` -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %182 = Base.getfield(%181, 1, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %183 = Base.getfield(%182, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %184 = Base.slt_int(%183, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %185 = Core.ifelse(%184, 0, %183)::Int64 -│ ││││││││└└└└└└ -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %186 = Base.getfield(%181, 2, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %187 = Base.getfield(%186, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %188 = Base.slt_int(%187, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %189 = Core.ifelse(%188, 0, %187)::Int64 -│ ││││││││└└└└└└ -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %190 = Base.getfield(%181, 3, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %191 = Base.getfield(%190, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %192 = Base.slt_int(%191, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %193 = Core.ifelse(%192, 0, %191)::Int64 -│ ││││││└└└└└└└└ -│ ││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %194 = Base.sub_int(%173, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %195 = Base.bitcast(UInt64, %194)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %196 = Base.bitcast(UInt64, %185)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %197 = Base.ult_int(%195, %196)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %198 = Base.sub_int(%177, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %199 = Base.bitcast(UInt64, %198)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %200 = Base.bitcast(UInt64, %189)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %201 = Base.ult_int(%199, %200)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 -│ │││││││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %202 = Base.sub_int(%178, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ essentials.jl:524 within `unsigned` -│ │││││││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %203 = Base.bitcast(UInt64, %202)::UInt64 -│ ││││││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││││││ %204 = Base.bitcast(UInt64, %193)::UInt64 -│ ││││││││└└ -│ ││││││││┌ @ int.jl:513 within `<` -│ │││││││││ %205 = Base.ult_int(%203, %204)::Bool -│ │││││││└└ -│ │││││││┌ @ bool.jl:38 within `&` -│ ││││││││ %206 = Base.and_int(%205, true)::Bool -│ │││││││└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ │││││││┌ @ bool.jl:38 within `&` -│ ││││││││ %207 = Base.and_int(%201, %206)::Bool -│ │││││││└ -│ │││││││ @ abstractarray.jl:728 within `checkbounds_indices` -│ │││││││┌ @ bool.jl:38 within `&` -│ ││││││││ %208 = Base.and_int(%197, %207)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #42 if not %208 -41 ──││││││ goto #43 -42 ──││││││ invoke Base.throw_boundserror(%136::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %180::Tuple{Int64, Int64, Int64})::Union{} -└────││││││ unreachable -43 ──││││││ nothing::Nothing - │││││└ - │││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - │││││┌ @ Base.jl:37 within `getproperty` -44 ┄─││││││ %214 = Base.getfield(%136, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:322 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %215 = Base.getfield(%214, 1, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ │││││││┌ @ range.jl:937 within `getindex` -└────││││││││ goto #48 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -45 ──││││││││││ %217 = Base.slt_int(0, %173)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %218 = Base.getfield(%215, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %219 = Base.sle_int(%173, %218)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %220 = Base.and_int(%217, %219)::Bool -│ ││││││││└ -└────││││││││ goto #47 if not %220 -46 ──││││││││ goto #48 -47 ──││││││││ invoke Base.throw_boundserror(%215::Base.OneTo{Int64}, %173::Int64)::Union{} -└────││││││││ unreachable -48 ┄─││││││││ goto #49 -49 ──││││││││ goto #50 - ││││││└└ - ││││││┌ @ essentials.jl:374 within `tail` -50 ──│││││││ %227 = Core.getfield(%214, 2)::Base.OneTo{Int64} -│ │││││││ %228 = Core.getfield(%214, 3)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ │││││││┌ @ range.jl:937 within `getindex` -└────││││││││ goto #54 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -51 ──││││││││││ %230 = Base.slt_int(0, %177)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %231 = Base.getfield(%227, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %232 = Base.sle_int(%177, %231)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %233 = Base.and_int(%230, %232)::Bool -│ ││││││││└ -└────││││││││ goto #53 if not %233 -52 ──││││││││ goto #54 -53 ──││││││││ invoke Base.throw_boundserror(%227::Base.OneTo{Int64}, %177::Int64)::Union{} -└────││││││││ unreachable -54 ┄─││││││││ goto #55 -55 ──││││││││ goto #56 - ││││││││ @ range.jl:937 within `getindex` -56 ──││││││││ goto #60 if not false - ││││││││┌ @ operators.jl:378 within `>` - │││││││││┌ @ int.jl:83 within `<` -57 ──││││││││││ %241 = Base.slt_int(0, %178)::Bool -│ ││││││││└└ -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %242 = Base.getfield(%228, :stop)::Int64 -│ ││││││││└ -│ ││││││││┌ @ int.jl:514 within `<=` -│ │││││││││ %243 = Base.sle_int(%178, %242)::Bool -│ ││││││││└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %244 = Base.and_int(%241, %243)::Bool -│ ││││││││└ -└────││││││││ goto #59 if not %244 -58 ──││││││││ goto #60 -59 ──││││││││ invoke Base.throw_boundserror(%228::Base.OneTo{Int64}, %178::Int64)::Union{} -└────││││││││ unreachable -60 ┄─││││││││ goto #61 -61 ──││││││││ goto #62 -62 ──││││││││ goto #63 -63 ──││││││││ goto #64 -64 ──││││││││ goto #65 -65 ──││││││││ goto #66 -66 ──││││││││ goto #67 - ││└└└└└└ - ││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 - ││┌ @ ntuple.jl:50 within `ntuple` - │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` - ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - │││││┌ @ Base.jl:37 within `getproperty` -67 ──││││││ %256 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││││└└ -│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %257 = Base.getfield(%256, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:293 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %258 = Base.getfield(%257, 1, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ range.jl:779 within `length` -│ │││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││ %259 = Base.getfield(%258, :stop)::Int64 -│ ││││└└└└ -│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ ││││┌ @ int.jl:86 within `-` -│ │││││ %260 = Base.sub_int(%53, 1)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:88 within `*` -│ │││││ %261 = Base.mul_int(%260, %259)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:87 within `+` -│ │││││ %262 = Base.add_int(%261, %173)::Int64 -│ ││││└ -│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` -│ ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %263 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││││└└ -│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %264 = Base.getfield(%263, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:293 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %265 = Base.getfield(%264, 2, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ range.jl:779 within `length` -│ │││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││ %266 = Base.getfield(%265, :stop)::Int64 -│ ││││└└└└ -│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ ││││┌ @ int.jl:86 within `-` -│ │││││ %267 = Base.sub_int(%57, 1)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:88 within `*` -│ │││││ %268 = Base.mul_int(%267, %266)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:87 within `+` -│ │││││ %269 = Base.add_int(%268, %177)::Int64 -│ ││││└ -│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` -│ ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %270 = Base.getfield(%1, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││││└└ -│ ││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %271 = Base.getfield(%270, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││└ -│ │││││┌ @ tuple.jl:293 within `map` -│ ││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││ %272 = Base.getfield(%271, 3, true)::Base.OneTo{Int64} -│ ││││││└ -│ ││││││┌ @ range.jl:779 within `length` -│ │││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││ %273 = Base.getfield(%272, :stop)::Int64 -│ ││││└└└└ -│ ││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ ││││┌ @ int.jl:86 within `-` -│ │││││ %274 = Base.sub_int(%58, 1)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:88 within `*` -│ │││││ %275 = Base.mul_int(%274, %273)::Int64 -│ ││││└ -│ ││││┌ @ int.jl:87 within `+` -│ │││││ %276 = Base.add_int(%275, %178)::Int64 -└────│││││ goto #68 - │└└└└ - │ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:145 within `#__validindex` - │┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` - ││┌ @ Base.jl:37 within `getproperty` -68 ──│││ %278 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ │└└ -│ │┌ @ multidimensional.jl:471 within `in` -│ ││┌ @ Base.jl:37 within `getproperty` -│ │││ %279 = Base.getfield(%278, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││└ -│ ││┌ @ tuple.jl:322 within `map` -│ │││┌ @ tuple.jl:31 within `getindex` -│ ││││ %280 = Base.getfield(%279, 1, true)::Base.OneTo{Int64} -│ │││└ -│ │││┌ @ range.jl:1439 within `in` -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %281 = Base.sle_int(1, %262)::Bool -│ ││││└ -│ ││││┌ @ range.jl:839 within `last` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %282 = Base.getfield(%280, :stop)::Int64 -│ ││││└└ -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %283 = Base.sle_int(%262, %282)::Bool -│ ││││└ -│ ││││┌ @ bool.jl:38 within `&` -│ │││││ %284 = Base.and_int(%281, %283)::Bool -│ │││└└ -│ │││┌ @ essentials.jl:374 within `tail` -│ ││││ %285 = Core.getfield(%279, 2)::Base.OneTo{Int64} -│ ││││ %286 = Core.getfield(%279, 3)::Base.OneTo{Int64} -│ │││└ -│ │││ @ tuple.jl:322 within `map` @ tuple.jl:319 -│ │││┌ @ range.jl:1439 within `in` -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %287 = Base.sle_int(1, %269)::Bool -│ ││││└ -│ ││││┌ @ range.jl:839 within `last` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %288 = Base.getfield(%285, :stop)::Int64 -│ ││││└└ -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %289 = Base.sle_int(%269, %288)::Bool -│ ││││└ -│ ││││┌ @ bool.jl:38 within `&` -│ │││││ %290 = Base.and_int(%287, %289)::Bool -│ ││││└ -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %291 = Base.sle_int(1, %276)::Bool -│ ││││└ -│ ││││┌ @ range.jl:839 within `last` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %292 = Base.getfield(%286, :stop)::Int64 -│ ││││└└ -│ ││││┌ @ int.jl:514 within `<=` -│ │││││ %293 = Base.sle_int(%276, %292)::Bool -│ ││││└ -│ ││││┌ @ bool.jl:38 within `&` -│ │││││ %294 = Base.and_int(%291, %293)::Bool -│ ││└└└ -│ ││┌ @ tuple.jl:600 within `all` -│ │││┌ @ bool.jl:38 within `&` -│ ││││ %295 = Base.and_int(%284, %290)::Bool -│ ││││ %296 = Base.and_int(%295, %294)::Bool -│ │└└└ -└────│ goto #69 - └ -69 ── goto #186 if not %296 - @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:95 within `gpu_kernel_xx!` - ┌ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:12 within `macro expansion` - │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:125 within `#__index_Global_Linear` - ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:23 within `__iterspace` - │││┌ @ Base.jl:37 within `getproperty` -70 ──││││ %299 = Base.getfield(__ctx__, :iterspace)::KernelAbstractions.NDIteration.NDRange{3, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}} -│ ││└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:172 within `blockIdx` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_x` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %300 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ │││││││ %301 = Base.llvmcall(%300, UInt32, Tuple{})::UInt32 -│ │││││└└ -│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ ││││││ %302 = Base.add_int(%301, 0x00000001)::UInt32 -│ │││└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_y` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %303 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%303, UInt32, Tuple{})::UInt32 -│ │││└└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:95 within `blockIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:93 within `workgroupIdx_z` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %305 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workgroup.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 -2}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%305, UInt32, Tuple{})::UInt32 -│ ││└└└└└ -│ ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:164 within `threadIdx` -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_x` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_x` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %307 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.x(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.x() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ │││││││ %308 = Base.llvmcall(%307, UInt32, Tuple{})::UInt32 -│ │││││└└ -│ │││││┌ @ int.jl:1068 within `+` @ int.jl:87 -│ ││││││ %309 = Base.add_int(%308, 0x00000001)::UInt32 -│ │││└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_y` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_y` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %310 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.y(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.y() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%310, UInt32, Tuple{})::UInt32 -│ │││└└└└ -│ │││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:89 within `threadIdx_z` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:87 within `workitemIdx_z` -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `_index` -│ ││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/indexing.jl:3 within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││││ %312 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine i32 @entry() #0 {\nentry:\n %0 = call i32 @llvm.amdgcn.workitem.id.z(), !range !0\n ret i32 %0\n}\n\n; Function Attrs: nounwind readnone speculatable willreturn\ndeclare i32 @llvm.amdgcn.workitem.id.z() #1\n\nattributes #0 = { alwaysinline }\nattributes #1 = { nounwind readnone speculatable willreturn }\n\n!0 = !{i32 0, i32 1023}\n", "entry")::Tuple{String, String} -│ │││││││ Base.llvmcall(%312, UInt32, Tuple{})::UInt32 -│ ││└└└└└ -│ ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` -│ │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:64 within `blocks` -│ ││││┌ @ Base.jl:37 within `getproperty` -│ │││││ %314 = Base.getfield(%299, :blocks)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ │││└└ -│ │││┌ @ abstractarray.jl:1291 within `getindex` -│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ │││││┌ @ indices.jl:359 within `_to_indices1` -│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ │││││││┌ @ number.jl:7 within `convert` -│ ││││││││┌ @ boot.jl:784 within `Int64` -│ │││││││││┌ @ boot.jl:708 within `toInt64` -│ ││││││││││ %315 = Core.zext_int(Core.Int64, %302)::Int64 -│ ││││└└└└└└ -│ ││││┌ @ abstractarray.jl:1335 within `_getindex` -└────│││││ goto #75 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -71 ──││││││ %317 = Core.tuple(%315)::Tuple{Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ ││││││┌ @ abstractarray.jl:388 within `eachindex` -│ │││││││┌ @ multidimensional.jl:455 within `length` -│ ││││││││┌ @ multidimensional.jl:453 within `size` -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %318 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││││││└ -│ │││││││││┌ @ tuple.jl:293 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %319 = Base.getfield(%318, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %320 = Base.getfield(%319, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %321 = Base.getfield(%318, 2, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %322 = Base.getfield(%321, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %323 = Base.getfield(%318, 3, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %324 = Base.getfield(%323, :stop)::Int64 -│ ││││││││└└└└ -│ ││││││││┌ @ tuple.jl:595 within `prod` -│ │││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 -│ ││││││││││ %325 = Base.mul_int(%320, %322)::Int64 -│ ││││││││││ %326 = Base.mul_int(%325, %324)::Int64 -│ │││││││└└└ -│ │││││││┌ @ range.jl:469 within `oneto` -│ ││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││ %327 = Base.slt_int(%326, 0)::Bool -│ ││││││││││└ -│ ││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││ %328 = Core.ifelse(%327, 0, %326)::Int64 -│ ││││││└└└└└ -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %329 = Base.sub_int(%315, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %330 = Base.bitcast(UInt64, %329)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %331 = Base.bitcast(UInt64, %328)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %332 = Base.ult_int(%330, %331)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #73 if not %332 -72 ──││││││ goto #74 -73 ──││││││ invoke Base.throw_boundserror(%314::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %317::Tuple{Int64})::Union{} -└────││││││ unreachable -74 ──││││││ nothing::Nothing - │││││└ - │││││ @ abstractarray.jl:1336 within `_getindex` - │││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` - ││││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` - │││││││┌ @ abstractarray.jl:2962 within `_ind2sub` - ││││││││┌ @ multidimensional.jl:344 within `axes` - │││││││││┌ @ Base.jl:37 within `getproperty` -75 ┄─││││││││││ %338 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││││││└ -│ │││││││││┌ @ tuple.jl:293 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %339 = Base.getfield(%338, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %340 = Base.getfield(%339, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %341 = Base.slt_int(%340, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %342 = Core.ifelse(%341, 0, %340)::Int64 -│ ││││││││││└└└└└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %343 = Base.getfield(%338, 2, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %344 = Base.getfield(%343, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %345 = Base.slt_int(%344, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %346 = Core.ifelse(%345, 0, %344)::Int64 -│ ││││││││└└└└└└└└ -│ ││││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %347 = Base.sub_int(%315, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` -│ │││││││││┌ @ abstractarray.jl:3020 within `_div` -│ ││││││││││┌ @ int.jl:295 within `div` -│ │││││││││││ %348 = Base.checked_sdiv_int(%347, %342)::Int64 -│ │││││││││└└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` -│ │││││││││┌ @ int.jl:88 within `*` -│ ││││││││││ %349 = Base.mul_int(%342, %348)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %350 = Base.sub_int(%347, %349)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:87 within `+` -│ ││││││││││ %351 = Base.add_int(%350, 1)::Int64 -│ │││││││││└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 -│ │││││││││┌ @ abstractarray.jl:3020 within `_div` -│ ││││││││││┌ @ int.jl:295 within `div` -│ │││││││││││ %352 = Base.checked_sdiv_int(%348, %346)::Int64 -│ │││││││││└└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 -│ │││││││││┌ @ int.jl:88 within `*` -│ ││││││││││ %353 = Base.mul_int(%346, %352)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %354 = Base.sub_int(%348, %353)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:87 within `+` -│ ││││││││││ %355 = Base.add_int(%354, 1)::Int64 -│ │││││││││└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 -│ │││││││││┌ @ abstractarray.jl:3018 within `_lookup` -│ ││││││││││┌ @ int.jl:87 within `+` -│ │││││││││││ %356 = Base.add_int(%352, 1)::Int64 -│ │││││└└└└└└ -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────││││││ goto #80 if not false - ││││││┌ @ abstractarray.jl:700 within `checkbounds` -76 ──│││││││ %358 = Core.tuple(%351, %355, %356)::Tuple{Int64, Int64, Int64} -│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 -│ │││││││┌ @ multidimensional.jl:344 within `axes` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %359 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││││└ -│ ││││││││┌ @ tuple.jl:293 within `map` -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %360 = Base.getfield(%359, 1, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %361 = Base.getfield(%360, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %362 = Base.slt_int(%361, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %363 = Core.ifelse(%362, 0, %361)::Int64 -│ │││││││││└└└└└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %364 = Base.getfield(%359, 2, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %365 = Base.getfield(%364, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %366 = Base.slt_int(%365, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %367 = Core.ifelse(%366, 0, %365)::Int64 -│ │││││││││└└└└└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %368 = Base.getfield(%359, 3, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %369 = Base.getfield(%368, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %370 = Base.slt_int(%369, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %371 = Core.ifelse(%370, 0, %369)::Int64 -│ │││││││└└└└└└└└ -│ │││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` -│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %372 = Base.sub_int(%351, 1)::Int64 -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %373 = Base.bitcast(UInt64, %372)::UInt64 -│ │││││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %374 = Base.bitcast(UInt64, %363)::UInt64 -│ │││││││││└└ -│ │││││││││┌ @ int.jl:513 within `<` -│ ││││││││││ %375 = Base.ult_int(%373, %374)::Bool -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %376 = Base.sub_int(%355, 1)::Int64 -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %377 = Base.bitcast(UInt64, %376)::UInt64 -│ │││││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %378 = Base.bitcast(UInt64, %367)::UInt64 -│ │││││││││└└ -│ │││││││││┌ @ int.jl:513 within `<` -│ ││││││││││ %379 = Base.ult_int(%377, %378)::Bool -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 -│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %380 = Base.sub_int(%356, 1)::Int64 -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %381 = Base.bitcast(UInt64, %380)::UInt64 -│ │││││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %382 = Base.bitcast(UInt64, %371)::UInt64 -│ │││││││││└└ -│ │││││││││┌ @ int.jl:513 within `<` -│ ││││││││││ %383 = Base.ult_int(%381, %382)::Bool -│ ││││││││└└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %384 = Base.and_int(%383, true)::Bool -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %385 = Base.and_int(%379, %384)::Bool -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %386 = Base.and_int(%375, %385)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││││ goto #78 if not %386 -77 ──│││││││ goto #79 -78 ──│││││││ invoke Base.throw_boundserror(%314::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %358::Tuple{Int64, Int64, Int64})::Union{} -└────│││││││ unreachable -79 ──│││││││ nothing::Nothing - ││││││└ - ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - ││││││┌ @ Base.jl:37 within `getproperty` -80 ┄─│││││││ %392 = Base.getfield(%314, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:322 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %393 = Base.getfield(%392, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ ││││││││┌ @ range.jl:937 within `getindex` -└────│││││││││ goto #84 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -81 ──│││││││││││ %395 = Base.slt_int(0, %351)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %396 = Base.getfield(%393, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %397 = Base.sle_int(%351, %396)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %398 = Base.and_int(%395, %397)::Bool -│ │││││││││└ -└────│││││││││ goto #83 if not %398 -82 ──│││││││││ goto #84 -83 ──│││││││││ invoke Base.throw_boundserror(%393::Base.OneTo{Int64}, %351::Int64)::Union{} -└────│││││││││ unreachable -84 ┄─│││││││││ goto #85 -85 ──│││││││││ goto #86 - │││││││└└ - │││││││┌ @ essentials.jl:374 within `tail` -86 ──││││││││ %405 = Core.getfield(%392, 2)::Base.OneTo{Int64} -│ ││││││││ %406 = Core.getfield(%392, 3)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 -│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ ││││││││┌ @ range.jl:937 within `getindex` -└────│││││││││ goto #90 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -87 ──│││││││││││ %408 = Base.slt_int(0, %355)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %409 = Base.getfield(%405, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %410 = Base.sle_int(%355, %409)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %411 = Base.and_int(%408, %410)::Bool -│ │││││││││└ -└────│││││││││ goto #89 if not %411 -88 ──│││││││││ goto #90 -89 ──│││││││││ invoke Base.throw_boundserror(%405::Base.OneTo{Int64}, %355::Int64)::Union{} -└────│││││││││ unreachable -90 ┄─│││││││││ goto #91 -91 ──│││││││││ goto #92 - │││││││││ @ range.jl:937 within `getindex` -92 ──│││││││││ goto #96 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -93 ──│││││││││││ %419 = Base.slt_int(0, %356)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %420 = Base.getfield(%406, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %421 = Base.sle_int(%356, %420)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %422 = Base.and_int(%419, %421)::Bool -│ │││││││││└ -└────│││││││││ goto #95 if not %422 -94 ──│││││││││ goto #96 -95 ──│││││││││ invoke Base.throw_boundserror(%406::Base.OneTo{Int64}, %356::Int64)::Union{} -└────│││││││││ unreachable -96 ┄─│││││││││ goto #97 -97 ──│││││││││ goto #98 -98 ──│││││││││ goto #99 -99 ──│││││││││ goto #100 -100 ─│││││││││ goto #101 -101 ─│││││││││ goto #102 -102 ─│││││││││ goto #103 - │││└└└└└└ - │││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - ││││┌ @ Base.jl:37 within `getproperty` -103 ─│││││ %434 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ │││└└ -│ │││┌ @ abstractarray.jl:1291 within `getindex` -│ ││││┌ @ indices.jl:350 within `to_indices` @ indices.jl:354 -│ │││││┌ @ indices.jl:359 within `_to_indices1` -│ ││││││┌ @ indices.jl:277 within `to_index` @ indices.jl:292 -│ │││││││┌ @ number.jl:7 within `convert` -│ ││││││││┌ @ boot.jl:784 within `Int64` -│ │││││││││┌ @ boot.jl:708 within `toInt64` -│ ││││││││││ %435 = Core.zext_int(Core.Int64, %309)::Int64 -│ ││││└└└└└└ -│ ││││┌ @ abstractarray.jl:1335 within `_getindex` -└────│││││ goto #108 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -104 ─││││││ %437 = Core.tuple(%435)::Tuple{Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ ││││││┌ @ abstractarray.jl:388 within `eachindex` -│ │││││││┌ @ multidimensional.jl:455 within `length` -│ ││││││││┌ @ multidimensional.jl:453 within `size` -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %438 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││││││└ -│ │││││││││┌ @ tuple.jl:293 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %439 = Base.getfield(%438, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %440 = Base.getfield(%439, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %441 = Base.getfield(%438, 2, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %442 = Base.getfield(%441, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %443 = Base.getfield(%438, 3, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %444 = Base.getfield(%443, :stop)::Int64 -│ ││││││││└└└└ -│ ││││││││┌ @ tuple.jl:595 within `prod` -│ │││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 -│ ││││││││││ %445 = Base.mul_int(%440, %442)::Int64 -│ ││││││││││ %446 = Base.mul_int(%445, %444)::Int64 -│ │││││││└└└ -│ │││││││┌ @ range.jl:469 within `oneto` -│ ││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││ %447 = Base.slt_int(%446, 0)::Bool -│ ││││││││││└ -│ ││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││ %448 = Core.ifelse(%447, 0, %446)::Int64 -│ ││││││└└└└└ -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %449 = Base.sub_int(%435, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %450 = Base.bitcast(UInt64, %449)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %451 = Base.bitcast(UInt64, %448)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %452 = Base.ult_int(%450, %451)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #106 if not %452 -105 ─││││││ goto #107 -106 ─││││││ invoke Base.throw_boundserror(%434::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %437::Tuple{Int64})::Union{} -└────││││││ unreachable -107 ─││││││ nothing::Nothing - │││││└ - │││││ @ abstractarray.jl:1336 within `_getindex` - │││││┌ @ abstractarray.jl:1343 within `_to_subscript_indices` - ││││││┌ @ abstractarray.jl:1365 within `_unsafe_ind2sub` - │││││││┌ @ abstractarray.jl:2962 within `_ind2sub` - ││││││││┌ @ multidimensional.jl:344 within `axes` - │││││││││┌ @ Base.jl:37 within `getproperty` -108 ┄││││││││││ %458 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││││││││└ -│ │││││││││┌ @ tuple.jl:293 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %459 = Base.getfield(%458, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %460 = Base.getfield(%459, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %461 = Base.slt_int(%460, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %462 = Core.ifelse(%461, 0, %460)::Int64 -│ ││││││││││└└└└└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %463 = Base.getfield(%458, 2, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││││ %464 = Base.getfield(%463, :stop)::Int64 -│ ││││││││││││└└ -│ ││││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││││ %465 = Base.slt_int(%464, 0)::Bool -│ │││││││││││││││└ -│ │││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││││ %466 = Core.ifelse(%465, 0, %464)::Int64 -│ ││││││││└└└└└└└└ -│ ││││││││ @ abstractarray.jl:2962 within `_ind2sub` @ abstractarray.jl:3000 -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %467 = Base.sub_int(%435, 1)::Int64 -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:3013 within `_ind2sub_recurse` -│ │││││││││┌ @ abstractarray.jl:3020 within `_div` -│ ││││││││││┌ @ int.jl:295 within `div` -│ │││││││││││ %468 = Base.checked_sdiv_int(%467, %462)::Int64 -│ │││││││││└└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` -│ │││││││││┌ @ int.jl:88 within `*` -│ ││││││││││ %469 = Base.mul_int(%462, %468)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %470 = Base.sub_int(%467, %469)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:87 within `+` -│ ││││││││││ %471 = Base.add_int(%470, 1)::Int64 -│ │││││││││└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3013 -│ │││││││││┌ @ abstractarray.jl:3020 within `_div` -│ ││││││││││┌ @ int.jl:295 within `div` -│ │││││││││││ %472 = Base.checked_sdiv_int(%468, %466)::Int64 -│ │││││││││└└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 -│ │││││││││┌ @ int.jl:88 within `*` -│ ││││││││││ %473 = Base.mul_int(%466, %472)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %474 = Base.sub_int(%468, %473)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:87 within `+` -│ ││││││││││ %475 = Base.add_int(%474, 1)::Int64 -│ │││││││││└ -│ │││││││││ @ abstractarray.jl:3014 within `_ind2sub_recurse` @ abstractarray.jl:3014 @ abstractarray.jl:3008 -│ │││││││││┌ @ abstractarray.jl:3018 within `_lookup` -│ ││││││││││┌ @ int.jl:87 within `+` -│ │││││││││││ %476 = Base.add_int(%472, 1)::Int64 -│ │││││└└└└└└ -│ │││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:55 within `#getindex` -└────││││││ goto #113 if not false - ││││││┌ @ abstractarray.jl:700 within `checkbounds` -109 ─│││││││ %478 = Core.tuple(%471, %475, %476)::Tuple{Int64, Int64, Int64} -│ │││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 -│ │││││││┌ @ multidimensional.jl:344 within `axes` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %479 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││││└ -│ ││││││││┌ @ tuple.jl:293 within `map` -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %480 = Base.getfield(%479, 1, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %481 = Base.getfield(%480, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %482 = Base.slt_int(%481, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %483 = Core.ifelse(%482, 0, %481)::Int64 -│ │││││││││└└└└└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %484 = Base.getfield(%479, 2, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %485 = Base.getfield(%484, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %486 = Base.slt_int(%485, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %487 = Core.ifelse(%486, 0, %485)::Int64 -│ │││││││││└└└└└└ -│ │││││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││││ %488 = Base.getfield(%479, 3, true)::Base.OneTo{Int64} -│ │││││││││└ -│ │││││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││││┌ @ range.jl:706 within `axes` -│ │││││││││││┌ @ range.jl:779 within `length` -│ ││││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││││ %489 = Base.getfield(%488, :stop)::Int64 -│ │││││││││││└└ -│ │││││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││││ %490 = Base.slt_int(%489, 0)::Bool -│ ││││││││││││││└ -│ ││││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││││ %491 = Core.ifelse(%490, 0, %489)::Int64 -│ │││││││└└└└└└└└ -│ │││││││┌ @ abstractarray.jl:728 within `checkbounds_indices` -│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %492 = Base.sub_int(%471, 1)::Int64 -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %493 = Base.bitcast(UInt64, %492)::UInt64 -│ │││││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %494 = Base.bitcast(UInt64, %483)::UInt64 -│ │││││││││└└ -│ │││││││││┌ @ int.jl:513 within `<` -│ ││││││││││ %495 = Base.ult_int(%493, %494)::Bool -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %496 = Base.sub_int(%475, 1)::Int64 -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %497 = Base.bitcast(UInt64, %496)::UInt64 -│ │││││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %498 = Base.bitcast(UInt64, %487)::UInt64 -│ │││││││││└└ -│ │││││││││┌ @ int.jl:513 within `<` -│ ││││││││││ %499 = Base.ult_int(%497, %498)::Bool -│ ││││││││└└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 -│ ││││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││││┌ @ int.jl:86 within `-` -│ ││││││││││ %500 = Base.sub_int(%476, 1)::Int64 -│ │││││││││└ -│ │││││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %501 = Base.bitcast(UInt64, %500)::UInt64 -│ │││││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││││ %502 = Base.bitcast(UInt64, %491)::UInt64 -│ │││││││││└└ -│ │││││││││┌ @ int.jl:513 within `<` -│ ││││││││││ %503 = Base.ult_int(%501, %502)::Bool -│ ││││││││└└ -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %504 = Base.and_int(%503, true)::Bool -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %505 = Base.and_int(%499, %504)::Bool -│ ││││││││└ -│ ││││││││ @ abstractarray.jl:728 within `checkbounds_indices` -│ ││││││││┌ @ bool.jl:38 within `&` -│ │││││││││ %506 = Base.and_int(%495, %505)::Bool -│ │││││││└└ -│ │││││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││││ goto #111 if not %506 -110 ─│││││││ goto #112 -111 ─│││││││ invoke Base.throw_boundserror(%434::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %478::Tuple{Int64, Int64, Int64})::Union{} -└────│││││││ unreachable -112 ─│││││││ nothing::Nothing - ││││││└ - ││││││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:56 within `#getindex` - ││││││┌ @ Base.jl:37 within `getproperty` -113 ┄│││││││ %512 = Base.getfield(%434, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:322 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %513 = Base.getfield(%512, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ ││││││││┌ @ range.jl:937 within `getindex` -└────│││││││││ goto #117 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -114 ─│││││││││││ %515 = Base.slt_int(0, %471)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %516 = Base.getfield(%513, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %517 = Base.sle_int(%471, %516)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %518 = Base.and_int(%515, %517)::Bool -│ │││││││││└ -└────│││││││││ goto #116 if not %518 -115 ─│││││││││ goto #117 -116 ─│││││││││ invoke Base.throw_boundserror(%513::Base.OneTo{Int64}, %471::Int64)::Union{} -└────│││││││││ unreachable -117 ┄│││││││││ goto #118 -118 ─│││││││││ goto #119 - │││││││└└ - │││││││┌ @ essentials.jl:374 within `tail` -119 ─││││││││ %525 = Core.getfield(%512, 2)::Base.OneTo{Int64} -│ ││││││││ %526 = Core.getfield(%512, 3)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││ @ tuple.jl:322 within `map` @ tuple.jl:319 -│ │││││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/quirks.jl:57 within `#54` -│ ││││││││┌ @ range.jl:937 within `getindex` -└────│││││││││ goto #123 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -120 ─│││││││││││ %528 = Base.slt_int(0, %475)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %529 = Base.getfield(%525, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %530 = Base.sle_int(%475, %529)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %531 = Base.and_int(%528, %530)::Bool -│ │││││││││└ -└────│││││││││ goto #122 if not %531 -121 ─│││││││││ goto #123 -122 ─│││││││││ invoke Base.throw_boundserror(%525::Base.OneTo{Int64}, %475::Int64)::Union{} -└────│││││││││ unreachable -123 ┄│││││││││ goto #124 -124 ─│││││││││ goto #125 - │││││││││ @ range.jl:937 within `getindex` -125 ─│││││││││ goto #129 if not false - │││││││││┌ @ operators.jl:378 within `>` - ││││││││││┌ @ int.jl:83 within `<` -126 ─│││││││││││ %539 = Base.slt_int(0, %476)::Bool -│ │││││││││└└ -│ │││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││ %540 = Base.getfield(%526, :stop)::Int64 -│ │││││││││└ -│ │││││││││┌ @ int.jl:514 within `<=` -│ ││││││││││ %541 = Base.sle_int(%476, %540)::Bool -│ │││││││││└ -│ │││││││││┌ @ bool.jl:38 within `&` -│ ││││││││││ %542 = Base.and_int(%539, %541)::Bool -│ │││││││││└ -└────│││││││││ goto #128 if not %542 -127 ─│││││││││ goto #129 -128 ─│││││││││ invoke Base.throw_boundserror(%526::Base.OneTo{Int64}, %476::Int64)::Union{} -└────│││││││││ unreachable -129 ┄│││││││││ goto #130 -130 ─│││││││││ goto #131 -131 ─│││││││││ goto #132 -132 ─│││││││││ goto #133 -133 ─│││││││││ goto #134 -134 ─│││││││││ goto #135 -135 ─│││││││││ goto #136 - │││└└└└└└ - │││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:84 within `expand` @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:74 - │││┌ @ ntuple.jl:50 within `ntuple` - ││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` - │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` - ││││││┌ @ Base.jl:37 within `getproperty` -136 ─│││││││ %554 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ │││││└└ -│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ ││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││ %555 = Base.getfield(%554, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:293 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %556 = Base.getfield(%555, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ range.jl:779 within `length` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %557 = Base.getfield(%556, :stop)::Int64 -│ │││││└└└└ -│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ │││││┌ @ int.jl:86 within `-` -│ ││││││ %558 = Base.sub_int(%351, 1)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:88 within `*` -│ ││││││ %559 = Base.mul_int(%558, %557)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:87 within `+` -│ ││││││ %560 = Base.add_int(%559, %471)::Int64 -│ │││││└ -│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` -│ │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` -│ ││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││ %561 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ │││││└└ -│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ ││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││ %562 = Base.getfield(%561, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:293 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %563 = Base.getfield(%562, 2, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ range.jl:779 within `length` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %564 = Base.getfield(%563, :stop)::Int64 -│ │││││└└└└ -│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ │││││┌ @ int.jl:86 within `-` -│ ││││││ %565 = Base.sub_int(%355, 1)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:88 within `*` -│ ││││││ %566 = Base.mul_int(%565, %564)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:87 within `+` -│ ││││││ %567 = Base.add_int(%566, %475)::Int64 -│ │││││└ -│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:76 within `#1` -│ │││││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:62 within `workitems` -│ ││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││ %568 = Base.getfield(%299, :workitems)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ │││││└└ -│ │││││┌ @ abstractarray.jl:42 within `size` @ multidimensional.jl:453 -│ ││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││ %569 = Base.getfield(%568, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ ││││││└ -│ ││││││┌ @ tuple.jl:293 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %570 = Base.getfield(%569, 3, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ range.jl:779 within `length` -│ ││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││ %571 = Base.getfield(%570, :stop)::Int64 -│ │││││└└└└ -│ │││││ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/nditeration.jl:78 within `#1` -│ │││││┌ @ int.jl:86 within `-` -│ ││││││ %572 = Base.sub_int(%356, 1)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:88 within `*` -│ ││││││ %573 = Base.mul_int(%572, %571)::Int64 -│ │││││└ -│ │││││┌ @ int.jl:87 within `+` -│ ││││││ %574 = Base.add_int(%573, %476)::Int64 -└────││││││ goto #137 - ││└└└└ - ││ @ /home/pxlth/.julia/dev/AMDGPU/src/ROCKernels.jl:127 within `#__index_Global_Linear` - ││┌ @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/compiler.jl:28 within `__ndrange` - │││┌ @ Base.jl:37 within `getproperty` -137 ─││││ %576 = Base.getfield(__ctx__, :ndrange)::CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││└└ -│ ││┌ @ multidimensional.jl:576 within `LinearIndices` -│ │││┌ @ Base.jl:37 within `getproperty` -│ ││││ %577 = Base.getfield(%576, :indices)::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}} -│ │││└ -│ │││ @ multidimensional.jl:576 within `LinearIndices` @ indices.jl:476 -│ │││ %578 = %new(LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %577)::LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}} -│ ││└ -│ ││┌ @ abstractarray.jl:1291 within `getindex` -│ │││┌ @ abstractarray.jl:1323 within `_getindex` -└────││││ goto #142 if not false - ││││┌ @ abstractarray.jl:700 within `checkbounds` -138 ─│││││ %580 = Core.tuple(%560, %567, %574)::Tuple{Int64, Int64, Int64} -│ │││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:681 -│ │││││┌ @ indices.jl:505 within `axes` -│ ││││││┌ @ tuple.jl:293 within `map` -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %581 = Base.getfield(%577, 1, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││┌ @ range.jl:706 within `axes` -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %582 = Base.getfield(%581, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││ %583 = Base.slt_int(%582, 0)::Bool -│ ││││││││││││└ -│ ││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││ %584 = Core.ifelse(%583, 0, %582)::Int64 -│ │││││││└└└└└└ -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %585 = Base.getfield(%577, 2, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││┌ @ range.jl:706 within `axes` -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %586 = Base.getfield(%585, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││ %587 = Base.slt_int(%586, 0)::Bool -│ ││││││││││││└ -│ ││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││ %588 = Core.ifelse(%587, 0, %586)::Int64 -│ │││││││└└└└└└ -│ │││││││┌ @ tuple.jl:31 within `getindex` -│ ││││││││ %589 = Base.getfield(%577, 3, true)::Base.OneTo{Int64} -│ │││││││└ -│ │││││││┌ @ abstractarray.jl:137 within `axes1` -│ ││││││││┌ @ range.jl:706 within `axes` -│ │││││││││┌ @ range.jl:779 within `length` -│ ││││││││││┌ @ Base.jl:37 within `getproperty` -│ │││││││││││ %590 = Base.getfield(%589, :stop)::Int64 -│ │││││││││└└ -│ │││││││││┌ @ range.jl:469 within `oneto` -│ ││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││││ %591 = Base.slt_int(%590, 0)::Bool -│ ││││││││││││└ -│ ││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││││ %592 = Core.ifelse(%591, 0, %590)::Int64 -│ │││││└└└└└└└└ -│ │││││┌ @ abstractarray.jl:728 within `checkbounds_indices` -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %593 = Base.sub_int(%560, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %594 = Base.bitcast(UInt64, %593)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %595 = Base.bitcast(UInt64, %584)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %596 = Base.ult_int(%594, %595)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %597 = Base.sub_int(%567, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %598 = Base.bitcast(UInt64, %597)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %599 = Base.bitcast(UInt64, %588)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %600 = Base.ult_int(%598, %599)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 @ abstractarray.jl:728 -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %601 = Base.sub_int(%574, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %602 = Base.bitcast(UInt64, %601)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %603 = Base.bitcast(UInt64, %592)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %604 = Base.ult_int(%602, %603)::Bool -│ ││││││└└ -│ ││││││┌ @ bool.jl:38 within `&` -│ │││││││ %605 = Base.and_int(%604, true)::Bool -│ ││││││└ -│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` @ abstractarray.jl:728 -│ ││││││┌ @ bool.jl:38 within `&` -│ │││││││ %606 = Base.and_int(%600, %605)::Bool -│ ││││││└ -│ ││││││ @ abstractarray.jl:728 within `checkbounds_indices` -│ ││││││┌ @ bool.jl:38 within `&` -│ │││││││ %607 = Base.and_int(%596, %606)::Bool -│ │││││└└ -│ │││││ @ abstractarray.jl:702 within `checkbounds` -└────│││││ goto #140 if not %607 -139 ─│││││ goto #141 -140 ─│││││ invoke Base.throw_boundserror(%578::LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %580::Tuple{Int64, Int64, Int64})::Union{} -└────│││││ unreachable -141 ─│││││ nothing::Nothing - ││││└ - ││││ @ abstractarray.jl:1324 within `_getindex` - ││││┌ @ abstractarray.jl:1330 within `_to_linear_index` - │││││┌ @ abstractarray.jl:2957 within `_sub2ind` - ││││││┌ @ indices.jl:505 within `axes` - │││││││┌ @ tuple.jl:293 within `map` - ││││││││┌ @ tuple.jl:31 within `getindex` -142 ┄│││││││││ %613 = Base.getfield(%577, 1, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %614 = Base.getfield(%613, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %615 = Base.slt_int(%614, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %616 = Core.ifelse(%615, 0, %614)::Int64 -│ ││││││││└└└└└└ -│ ││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││ %617 = Base.getfield(%577, 2, true)::Base.OneTo{Int64} -│ ││││││││└ -│ ││││││││┌ @ abstractarray.jl:137 within `axes1` -│ │││││││││┌ @ range.jl:706 within `axes` -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %618 = Base.getfield(%617, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ range.jl:469 within `oneto` -│ │││││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││││││││┌ @ promotion.jl:532 within `max` -│ │││││││││││││┌ @ int.jl:83 within `<` -│ ││││││││││││││ %619 = Base.slt_int(%618, 0)::Bool -│ │││││││││││││└ -│ │││││││││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││││││││ %620 = Core.ifelse(%619, 0, %618)::Int64 -│ ││││││└└└└└└└└ -│ ││││││ @ abstractarray.jl:2957 within `_sub2ind` @ abstractarray.jl:2973 -│ ││││││┌ @ abstractarray.jl:2989 within `_sub2ind_recurse` -│ │││││││┌ @ abstractarray.jl:2993 within `nextL` -│ ││││││││┌ @ int.jl:88 within `*` -│ │││││││││ %621 = Base.mul_int(1, %616)::Int64 -│ │││││││└└ -│ │││││││┌ @ abstractarray.jl:2996 within `offsetin` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %622 = Base.sub_int(%560, 1)::Int64 -│ │││││││└└ -│ │││││││┌ @ int.jl:88 within `*` -│ ││││││││ %623 = Base.mul_int(%622, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ int.jl:87 within `+` -│ ││││││││ %624 = Base.add_int(1, %623)::Int64 -│ │││││││└ -│ │││││││ @ abstractarray.jl:2989 within `_sub2ind_recurse` @ abstractarray.jl:2989 -│ │││││││┌ @ abstractarray.jl:2993 within `nextL` -│ ││││││││┌ @ int.jl:88 within `*` -│ │││││││││ %625 = Base.mul_int(%621, %620)::Int64 -│ │││││││└└ -│ │││││││┌ @ abstractarray.jl:2996 within `offsetin` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %626 = Base.sub_int(%567, 1)::Int64 -│ │││││││└└ -│ │││││││┌ @ int.jl:88 within `*` -│ ││││││││ %627 = Base.mul_int(%626, %621)::Int64 -│ │││││││└ -│ │││││││┌ @ int.jl:87 within `+` -│ ││││││││ %628 = Base.add_int(%624, %627)::Int64 -│ │││││││└ -│ │││││││ @ abstractarray.jl:2989 within `_sub2ind_recurse` @ abstractarray.jl:2989 @ abstractarray.jl:2989 -│ │││││││┌ @ abstractarray.jl:2996 within `offsetin` -│ ││││││││┌ @ int.jl:86 within `-` -│ │││││││││ %629 = Base.sub_int(%574, 1)::Int64 -│ │││││││└└ -│ │││││││┌ @ int.jl:88 within `*` -│ ││││││││ %630 = Base.mul_int(%629, %625)::Int64 -│ │││││││└ -│ │││││││┌ @ int.jl:87 within `+` -│ ││││││││ %631 = Base.add_int(%628, %630)::Int64 -│ ││││└└└└ -│ ││││┌ @ indices.jl:510 within `getindex` -└────│││││ goto #147 if not false - │││││┌ @ abstractarray.jl:700 within `checkbounds` -143 ─││││││ %633 = Core.tuple(%631)::Tuple{Int64} -│ ││││││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ ││││││┌ @ abstractarray.jl:388 within `eachindex` -│ │││││││┌ @ abstractarray.jl:315 within `length` -│ ││││││││┌ @ indices.jl:506 within `size` -│ │││││││││┌ @ tuple.jl:293 within `map` -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %634 = Base.getfield(%577, 1, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %635 = Base.getfield(%634, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %636 = Base.getfield(%577, 2, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %637 = Base.getfield(%636, :stop)::Int64 -│ ││││││││││└└ -│ ││││││││││┌ @ tuple.jl:31 within `getindex` -│ │││││││││││ %638 = Base.getfield(%577, 3, true)::Base.OneTo{Int64} -│ ││││││││││└ -│ ││││││││││┌ @ range.jl:779 within `length` -│ │││││││││││┌ @ Base.jl:37 within `getproperty` -│ ││││││││││││ %639 = Base.getfield(%638, :stop)::Int64 -│ ││││││││└└└└ -│ ││││││││┌ @ tuple.jl:595 within `prod` -│ │││││││││┌ @ operators.jl:587 within `*` @ int.jl:88 -│ ││││││││││ %640 = Base.mul_int(%635, %637)::Int64 -│ ││││││││││ %641 = Base.mul_int(%640, %639)::Int64 -│ │││││││└└└ -│ │││││││┌ @ range.jl:469 within `oneto` -│ ││││││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ │││││││││┌ @ promotion.jl:532 within `max` -│ ││││││││││┌ @ int.jl:83 within `<` -│ │││││││││││ %642 = Base.slt_int(%641, 0)::Bool -│ ││││││││││└ -│ ││││││││││┌ @ essentials.jl:647 within `ifelse` -│ │││││││││││ %643 = Core.ifelse(%642, 0, %641)::Int64 -│ ││││││└└└└└ -│ ││││││┌ @ abstractarray.jl:763 within `checkindex` -│ │││││││┌ @ int.jl:86 within `-` -│ ││││││││ %644 = Base.sub_int(%631, 1)::Int64 -│ │││││││└ -│ │││││││┌ @ essentials.jl:524 within `unsigned` -│ ││││││││┌ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %645 = Base.bitcast(UInt64, %644)::UInt64 -│ │││││││││ @ essentials.jl:581 within `reinterpret` -│ │││││││││ %646 = Base.bitcast(UInt64, %643)::UInt64 -│ │││││││└└ -│ │││││││┌ @ int.jl:513 within `<` -│ ││││││││ %647 = Base.ult_int(%645, %646)::Bool -│ ││││││└└ -│ ││││││ @ abstractarray.jl:702 within `checkbounds` -└────││││││ goto #145 if not %647 -144 ─││││││ goto #146 -145 ─││││││ invoke Base.throw_boundserror(%578::LinearIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, %633::Tuple{Int64})::Union{} -└────││││││ unreachable -146 ─││││││ nothing::Nothing -147 ┄││││││ goto #148 -148 ─││││││ goto #149 -149 ─││││││ goto #150 -150 ─││││││ goto #151 - │└└└└└ - │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:14 within `macro expansion` - │┌ @ int.jl:85 within `-` -151 ─││ %657 = Base.neg_int(Nx)::Int64 -│ │└ -│ │┌ @ range.jl:5 within `Colon` -│ ││┌ @ range.jl:403 within `UnitRange` -│ │││┌ @ range.jl:414 within `unitrange_last` -│ ││││┌ @ operators.jl:425 within `>=` -│ │││││┌ @ int.jl:514 within `<=` -│ ││││││ %658 = Base.sle_int(%657, Nx)::Bool -│ ││││└└ -└────││││ goto #153 if not %658 -152 ─││││ goto #154 - ││││┌ @ int.jl:86 within `-` -153 ─│││││ %661 = Base.sub_int(%657, 1)::Int64 -└────│││││ goto #154 - │││└└ -154 ┄│││ %663 = φ (#152 => Nx, #153 => %661)::Int64 -└────│││ goto #155 -155 ─│││ goto #156 - │└└ - │┌ @ range.jl:897 within `iterate` - ││┌ @ range.jl:672 within `isempty` - │││┌ @ operators.jl:378 within `>` - ││││┌ @ int.jl:83 within `<` -156 ─│││││ %666 = Base.slt_int(%663, %657)::Bool -│ ││└└└ -└────││ goto #158 if not %666 -157 ─││ goto #159 -158 ─││ goto #159 - │└ -159 ┄│ %670 = φ (#157 => true, #158 => false)::Bool -│ │ %671 = φ (#158 => %657)::Int64 -│ │ %672 = Base.not_int(%670)::Bool -└────│ goto #179 if not %672 -160 ┄│ %674 = φ (#159 => %671, #178 => %712)::Int64 -│ │ %675 = φ (#159 => 0.0, #178 => %706)::Float64 -│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:15 within `macro expansion` -│ │┌ @ int.jl:85 within `-` -│ ││ %676 = Base.neg_int(Ny)::Int64 -│ │└ -│ │┌ @ range.jl:5 within `Colon` -│ ││┌ @ range.jl:403 within `UnitRange` -│ │││┌ @ range.jl:414 within `unitrange_last` -│ ││││┌ @ operators.jl:425 within `>=` -│ │││││┌ @ int.jl:514 within `<=` -│ ││││││ %677 = Base.sle_int(%676, Ny)::Bool -│ ││││└└ -└────││││ goto #162 if not %677 -161 ─││││ goto #163 - ││││┌ @ int.jl:86 within `-` -162 ─│││││ %680 = Base.sub_int(%676, 1)::Int64 -└────│││││ goto #163 - │││└└ -163 ┄│││ %682 = φ (#161 => Ny, #162 => %680)::Int64 -└────│││ goto #164 -164 ─│││ goto #165 - │└└ - │┌ @ range.jl:897 within `iterate` - ││┌ @ range.jl:672 within `isempty` - │││┌ @ operators.jl:378 within `>` - ││││┌ @ int.jl:83 within `<` -165 ─│││││ %685 = Base.slt_int(%682, %676)::Bool -│ ││└└└ -└────││ goto #167 if not %685 -166 ─││ goto #168 -167 ─││ goto #168 - │└ -168 ┄│ %689 = φ (#166 => true, #167 => false)::Bool -│ │ %690 = φ (#167 => %676)::Int64 -│ │ %691 = Base.not_int(%689)::Bool -└────│ goto #174 if not %691 -169 ┄│ %693 = φ (#168 => %675, #173 => %695)::Float64 -│ │ %694 = φ (#168 => %690, #173 => %701)::Int64 -│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:16 within `macro expansion` -│ │┌ @ float.jl:409 within `+` -│ ││ %695 = Base.add_float(%693, 2.0)::Float64 -│ │└ -│ │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:17 within `macro expansion` -│ │┌ @ range.jl:901 within `iterate` -│ ││┌ @ promotion.jl:521 within `==` -│ │││ %696 = (%694 === %682)::Bool -│ ││└ -└────││ goto #171 if not %696 -170 ─││ goto #172 - ││ @ range.jl:902 within `iterate` - ││┌ @ int.jl:87 within `+` -171 ─│││ %699 = Base.add_int(%694, 1)::Int64 -└────│││ goto #172 - │└└ -172 ┄│ %701 = φ (#171 => %699)::Int64 -│ │ %702 = φ (#170 => true, #171 => false)::Bool -│ │ %703 = Base.not_int(%702)::Bool -└────│ goto #174 if not %703 -173 ─│ goto #169 - │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:18 within `macro expansion` -174 ┄│ %706 = φ (#172 => %695, #168 => %675)::Float64 -│ │┌ @ range.jl:901 within `iterate` -│ ││┌ @ promotion.jl:521 within `==` -│ │││ %707 = (%674 === %663)::Bool -│ ││└ -└────││ goto #176 if not %707 -175 ─││ goto #177 - ││ @ range.jl:902 within `iterate` - ││┌ @ int.jl:87 within `+` -176 ─│││ %710 = Base.add_int(%674, 1)::Int64 -└────│││ goto #177 - │└└ -177 ┄│ %712 = φ (#176 => %710)::Int64 -│ │ %713 = φ (#175 => true, #176 => false)::Bool -│ │ %714 = Base.not_int(%713)::Bool -└────│ goto #179 if not %714 -178 ─│ goto #160 - │ @ /home/pxlth/.julia/dev/AMDGPU/a.jl:19 within `macro expansion` -179 ┄│ %717 = φ (#177 => %706, #159 => 0.0)::Float64 -│ │┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:88 within `#setindex!` -└────││ goto #184 if not false - ││┌ @ abstractarray.jl:700 within `checkbounds` -180 ─│││ %719 = Core.tuple(%631)::Tuple{Int64} -│ │││ @ abstractarray.jl:702 within `checkbounds` @ abstractarray.jl:687 -│ │││┌ @ abstractarray.jl:388 within `eachindex` -│ ││││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:69 within `length` -│ │││││┌ @ Base.jl:37 within `getproperty` -│ ││││││ %720 = Base.getfield(tensor, :len)::Int64 -│ ││││└└ -│ ││││┌ @ range.jl:469 within `oneto` -│ │││││┌ @ range.jl:467 within `OneTo` @ range.jl:454 -│ ││││││┌ @ promotion.jl:532 within `max` -│ │││││││┌ @ int.jl:83 within `<` -│ ││││││││ %721 = Base.slt_int(%720, 0)::Bool -│ │││││││└ -│ │││││││┌ @ essentials.jl:647 within `ifelse` -│ ││││││││ %722 = Core.ifelse(%721, 0, %720)::Int64 -│ │││└└└└└ -│ │││┌ @ abstractarray.jl:763 within `checkindex` -│ ││││┌ @ int.jl:86 within `-` -│ │││││ %723 = Base.sub_int(%631, 1)::Int64 -│ ││││└ -│ ││││┌ @ essentials.jl:524 within `unsigned` -│ │││││┌ @ essentials.jl:581 within `reinterpret` -│ ││││││ %724 = Base.bitcast(UInt64, %723)::UInt64 -│ ││││││ @ essentials.jl:581 within `reinterpret` -│ ││││││ %725 = Base.bitcast(UInt64, %722)::UInt64 -│ ││││└└ -│ ││││┌ @ int.jl:513 within `<` -│ │││││ %726 = Base.ult_int(%724, %725)::Bool -│ │││└└ -│ │││ @ abstractarray.jl:702 within `checkbounds` -└────│││ goto #182 if not %726 -181 ─│││ goto #183 -182 ─│││ invoke Base.throw_boundserror(tensor::ROCDeviceArray{Float64, 3, 1}, %719::Tuple{Int64})::Union{} -└────│││ unreachable -183 ─│││ nothing::Nothing - ││└ - ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:90 within `#setindex!` - ││┌ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:63 within `pointer` - │││┌ @ Base.jl:37 within `getproperty` -184 ┄││││ %732 = Base.getfield(tensor, :ptr)::Core.LLVMPtr{Float64, 1} -│ ││└└ -│ ││┌ @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/pointer.jl:88 within `unsafe_store!` -│ │││┌ @ none within `pointerset` -│ ││││┌ @ none within `macro expansion` @ /home/pxlth/.julia/packages/LLVM/UqMfW/src/interop/base.jl:39 -│ │││││ %733 = Core.tuple("; ModuleID = 'llvmcall'\nsource_filename = \"llvmcall\"\n\n; Function Attrs: alwaysinline\ndefine void @entry(i8 addrspace(1)* %0, double %1, i64 %2) #0 {\nentry:\n %3 = bitcast i8 addrspace(1)* %0 to double addrspace(1)*\n %4 = getelementptr inbounds double, double addrspace(1)* %3, i64 %2\n store double %1, double addrspace(1)* %4, align 8, !tbaa !0\n ret void\n}\n\nattributes #0 = { alwaysinline }\n\n!0 = !{!1, !1, i64 0, i64 0}\n!1 = !{!\"custom_tbaa_addrspace(1)\", !2, i64 0}\n!2 = !{!\"custom_tbaa\"}\n", "entry")::Tuple{String, String} -│ │││││┌ @ int.jl:86 within `-` -│ ││││││ %734 = Base.sub_int(%631, 1)::Int64 -│ │││││└ -│ │││││ Base.llvmcall(%733, Nothing, Tuple{Core.LLVMPtr{Float64, 1}, Float64, Int64}, %732, %717, %734)::Nothing -│ ││└└└ -│ ││ @ /home/pxlth/.julia/dev/AMDGPU/src/device/gcn/array.jl:91 within `#setindex!` -└────││ goto #185 -185 ─││ nothing::Nothing - └└ - @ /home/pxlth/.julia/packages/KernelAbstractions/60cqT/src/macros.jl:97 within `gpu_kernel_xx!` -186 ┄ return Main.nothing -) => Nothing diff --git a/devcode_size/gpu_kernel_xx!_1.unopt.ll b/devcode_size/gpu_kernel_xx!_1.unopt.ll deleted file mode 100644 index eaafd4d63..000000000 --- a/devcode_size/gpu_kernel_xx!_1.unopt.ll +++ /dev/null @@ -1,872 +0,0 @@ -; ModuleID = 'start' -source_filename = "start" -target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7-ni:10:11:12:13" -target triple = "amdgcn-amd-amdhsa" - -@_j_const1 = private unnamed_addr addrspace(1) constant i32 1, align 4 - -declare {}*** @julia.get_pgcstack() local_unnamed_addr - -; Function Attrs: argmemonly nocallback nofree nounwind willreturn -declare void @llvm.memcpy.p5i8.p11i8.i64(i8 addrspace(5)* noalias nocapture writeonly, i8 addrspace(11)* noalias nocapture readonly, i64, i1 immarg) #0 - -; Function Attrs: cold noreturn nounwind -declare void @llvm.trap() #1 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.x() #2 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.y() #2 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workgroup.id.z() #2 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.x() #2 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.y() #2 - -; Function Attrs: nounwind readnone speculatable willreturn -declare i32 @llvm.amdgcn.workitem.id.z() #2 - -define amdgpu_kernel void @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_({ [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, { [3 x i64], i8 addrspace(1)*, i64 } %1, i64 signext %2, i64 signext %3, i64 signext %4) local_unnamed_addr #3 { -conversion: - %5 = alloca { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, align 8, addrspace(5) - %6 = addrspacecast { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(5)* %5 to { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* - store { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } %0, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, align 8 - %7 = alloca { [3 x i64], i8 addrspace(1)*, i64 }, align 8, addrspace(5) - %8 = addrspacecast { [3 x i64], i8 addrspace(1)*, i64 } addrspace(5)* %7 to { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* - store { [3 x i64], i8 addrspace(1)*, i64 } %1, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, align 8 - br label %top - -top: ; preds = %conversion - %9 = alloca [1 x i64], align 8, addrspace(5) - %10 = alloca [3 x i64], align 8, addrspace(5) - %11 = alloca [1 x i64], align 8, addrspace(5) - %12 = alloca [3 x i64], align 8, addrspace(5) - %13 = alloca [1 x i64], align 8, addrspace(5) - %14 = alloca [3 x i64], align 8, addrspace(5) - %15 = alloca [1 x i64], align 8, addrspace(5) - %16 = alloca [3 x i64], align 8, addrspace(5) - %17 = alloca [1 x [3 x [1 x i64]]], align 8, addrspace(5) - %18 = alloca [3 x i64], align 8, addrspace(5) - %19 = alloca [1 x i64], align 8, addrspace(5) - %20 = alloca [1 x i64], align 8, addrspace(5) - %21 = call {}*** @julia.get_pgcstack() - %22 = bitcast {}*** %21 to {}** - %current_task = getelementptr inbounds {}*, {}** %22, i64 -14 - %23 = bitcast {}** %current_task to i64* - %world_age = getelementptr inbounds i64, i64* %23, i64 15 - %24 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 - %25 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 - %26 = add i32 %25, 1 - %27 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 - %28 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 - %29 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 - %30 = add i32 %29, 1 - %31 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 - %32 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 - %33 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 0 - %34 = zext i32 %26 to i64 - br label %L40 - -L40: ; preds = %top - %35 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %33, i32 0, i32 0 - %36 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %35, i32 0, i32 0 - %37 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %36, i32 0, i32 0 - %38 = load i64, i64 addrspace(11)* %37, align 8, !alias.scope !9, !noalias !12 - %39 = icmp slt i64 %38, 0 - %40 = xor i1 %39, true - %41 = load i64, i64 addrspace(11)* %37, align 8, !alias.scope !9, !noalias !12 - %42 = select i1 %40, i64 %41, i64 0 - %43 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %35, i32 0, i32 1 - %44 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %43, i32 0, i32 0 - %45 = load i64, i64 addrspace(11)* %44, align 8, !alias.scope !9, !noalias !12 - %46 = icmp slt i64 %45, 0 - %47 = xor i1 %46, true - %48 = load i64, i64 addrspace(11)* %44, align 8, !alias.scope !9, !noalias !12 - %49 = select i1 %47, i64 %48, i64 0 - %50 = sub i64 %34, 1 - %51 = icmp ne i64 %50, -9223372036854775808 - %52 = icmp ne i64 %42, -1 - %53 = or i1 %52, %51 - %54 = icmp ne i64 %42, 0 - %55 = and i1 %54, %53 - br i1 %55, label %pass, label %fail - -L94: ; preds = %pass2 - %56 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %33, i32 0, i32 0 - %57 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %56, i32 0, i32 0 - br label %L105 - -L105: ; preds = %L94 - br label %L106 - -L106: ; preds = %L105 - br label %L107 - -L107: ; preds = %L106 - %58 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %56, i32 0, i32 1 - %59 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %56, i32 0, i32 2 - br label %L118 - -L118: ; preds = %L107 - br label %L119 - -L119: ; preds = %L118 - br label %L120 - -L120: ; preds = %L119 - br label %L129 - -L129: ; preds = %L120 - br label %L130 - -L130: ; preds = %L129 - br label %L131 - -L131: ; preds = %L130 - br label %L132 - -L132: ; preds = %L131 - br label %L133 - -L133: ; preds = %L132 - br label %L134 - -L134: ; preds = %L133 - br label %L135 - -L135: ; preds = %L134 - br label %L136 - -L136: ; preds = %L135 - %60 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 - %61 = zext i32 %30 to i64 - br label %L160 - -L160: ; preds = %L136 - %62 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %60, i32 0, i32 0 - %63 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %62, i32 0, i32 0 - %64 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %63, i32 0, i32 0 - %65 = load i64, i64 addrspace(11)* %64, align 8, !alias.scope !9, !noalias !12 - %66 = icmp slt i64 %65, 0 - %67 = xor i1 %66, true - %68 = load i64, i64 addrspace(11)* %64, align 8, !alias.scope !9, !noalias !12 - %69 = select i1 %67, i64 %68, i64 0 - %70 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %62, i32 0, i32 1 - %71 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %70, i32 0, i32 0 - %72 = load i64, i64 addrspace(11)* %71, align 8, !alias.scope !9, !noalias !12 - %73 = icmp slt i64 %72, 0 - %74 = xor i1 %73, true - %75 = load i64, i64 addrspace(11)* %71, align 8, !alias.scope !9, !noalias !12 - %76 = select i1 %74, i64 %75, i64 0 - %77 = sub i64 %61, 1 - %78 = icmp ne i64 %77, -9223372036854775808 - %79 = icmp ne i64 %69, -1 - %80 = or i1 %79, %78 - %81 = icmp ne i64 %69, 0 - %82 = and i1 %81, %80 - br i1 %82, label %pass4, label %fail3 - -L214: ; preds = %pass6 - %83 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %60, i32 0, i32 0 - %84 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %83, i32 0, i32 0 - br label %L225 - -L225: ; preds = %L214 - br label %L226 - -L226: ; preds = %L225 - br label %L227 - -L227: ; preds = %L226 - %85 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %83, i32 0, i32 1 - %86 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %83, i32 0, i32 2 - br label %L238 - -L238: ; preds = %L227 - br label %L239 - -L239: ; preds = %L238 - br label %L240 - -L240: ; preds = %L239 - br label %L249 - -L249: ; preds = %L240 - br label %L250 - -L250: ; preds = %L249 - br label %L251 - -L251: ; preds = %L250 - br label %L252 - -L252: ; preds = %L251 - br label %L253 - -L253: ; preds = %L252 - br label %L254 - -L254: ; preds = %L253 - br label %L255 - -L255: ; preds = %L254 - br label %L256 - -L256: ; preds = %L255 - %87 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 - %88 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %87, i32 0, i32 0 - %89 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %88, i32 0, i32 0 - %90 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %89, i32 0, i32 0 - %91 = sub i64 %290, 1 - %92 = load i64, i64 addrspace(11)* %90, align 8, !alias.scope !9, !noalias !12 - %93 = mul i64 %91, %92 - %94 = add i64 %93, %304 - %95 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 - %96 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %95, i32 0, i32 0 - %97 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %96, i32 0, i32 1 - %98 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %97, i32 0, i32 0 - %99 = sub i64 %299, 1 - %100 = load i64, i64 addrspace(11)* %98, align 8, !alias.scope !9, !noalias !12 - %101 = mul i64 %99, %100 - %102 = add i64 %101, %313 - %103 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %24, i32 0, i32 1 - %104 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %103, i32 0, i32 0 - %105 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %104, i32 0, i32 2 - %106 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %105, i32 0, i32 0 - %107 = sub i64 %300, 1 - %108 = load i64, i64 addrspace(11)* %106, align 8, !alias.scope !9, !noalias !12 - %109 = mul i64 %107, %108 - %110 = add i64 %109, %314 - br label %L278 - -L278: ; preds = %L256 - %111 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 - %112 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %111, i32 0, i32 0 - %113 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %112, i32 0, i32 0 - %114 = icmp sle i64 1, %94 - %115 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %113, i32 0, i32 0 - %116 = load i64, i64 addrspace(11)* %115, align 8, !alias.scope !9, !noalias !12 - %117 = icmp sle i64 %94, %116 - %118 = and i1 %114, %117 - %119 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %112, i32 0, i32 1 - %120 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %112, i32 0, i32 2 - %121 = icmp sle i64 1, %102 - %122 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %119, i32 0, i32 0 - %123 = load i64, i64 addrspace(11)* %122, align 8, !alias.scope !9, !noalias !12 - %124 = icmp sle i64 %102, %123 - %125 = and i1 %121, %124 - %126 = icmp sle i64 1, %110 - %127 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %120, i32 0, i32 0 - %128 = load i64, i64 addrspace(11)* %127, align 8, !alias.scope !9, !noalias !12 - %129 = icmp sle i64 %110, %128 - %130 = and i1 %126, %129 - %131 = and i1 %118, %125 - %132 = and i1 %131, %130 - br label %L298 - -L298: ; preds = %L278 - %133 = xor i1 %132, true - br i1 %133, label %L738, label %L299 - -L299: ; preds = %L298 - %134 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 1 - %135 = call i32 @llvm.amdgcn.workgroup.id.x(), !range !7 - %136 = add i32 %135, 1 - %137 = call i32 @llvm.amdgcn.workgroup.id.y(), !range !7 - %138 = call i32 @llvm.amdgcn.workgroup.id.z(), !range !7 - %139 = call i32 @llvm.amdgcn.workitem.id.x(), !range !8 - %140 = add i32 %139, 1 - %141 = call i32 @llvm.amdgcn.workitem.id.y(), !range !8 - %142 = call i32 @llvm.amdgcn.workitem.id.z(), !range !8 - %143 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 0 - %144 = zext i32 %136 to i64 - br label %L338 - -L338: ; preds = %L299 - %145 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %143, i32 0, i32 0 - %146 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %145, i32 0, i32 0 - %147 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %146, i32 0, i32 0 - %148 = load i64, i64 addrspace(11)* %147, align 8, !alias.scope !9, !noalias !12 - %149 = icmp slt i64 %148, 0 - %150 = xor i1 %149, true - %151 = load i64, i64 addrspace(11)* %147, align 8, !alias.scope !9, !noalias !12 - %152 = select i1 %150, i64 %151, i64 0 - %153 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %145, i32 0, i32 1 - %154 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %153, i32 0, i32 0 - %155 = load i64, i64 addrspace(11)* %154, align 8, !alias.scope !9, !noalias !12 - %156 = icmp slt i64 %155, 0 - %157 = xor i1 %156, true - %158 = load i64, i64 addrspace(11)* %154, align 8, !alias.scope !9, !noalias !12 - %159 = select i1 %157, i64 %158, i64 0 - %160 = sub i64 %144, 1 - %161 = icmp ne i64 %160, -9223372036854775808 - %162 = icmp ne i64 %152, -1 - %163 = or i1 %162, %161 - %164 = icmp ne i64 %152, 0 - %165 = and i1 %164, %163 - br i1 %165, label %pass8, label %fail7 - -L392: ; preds = %pass10 - %166 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %143, i32 0, i32 0 - %167 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %166, i32 0, i32 0 - br label %L403 - -L403: ; preds = %L392 - br label %L404 - -L404: ; preds = %L403 - br label %L405 - -L405: ; preds = %L404 - %168 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %166, i32 0, i32 1 - %169 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %166, i32 0, i32 2 - br label %L416 - -L416: ; preds = %L405 - br label %L417 - -L417: ; preds = %L416 - br label %L418 - -L418: ; preds = %L417 - br label %L427 - -L427: ; preds = %L418 - br label %L428 - -L428: ; preds = %L427 - br label %L429 - -L429: ; preds = %L428 - br label %L430 - -L430: ; preds = %L429 - br label %L431 - -L431: ; preds = %L430 - br label %L432 - -L432: ; preds = %L431 - br label %L433 - -L433: ; preds = %L432 - br label %L434 - -L434: ; preds = %L433 - %170 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 - %171 = zext i32 %140 to i64 - br label %L458 - -L458: ; preds = %L434 - %172 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %170, i32 0, i32 0 - %173 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %172, i32 0, i32 0 - %174 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %173, i32 0, i32 0 - %175 = load i64, i64 addrspace(11)* %174, align 8, !alias.scope !9, !noalias !12 - %176 = icmp slt i64 %175, 0 - %177 = xor i1 %176, true - %178 = load i64, i64 addrspace(11)* %174, align 8, !alias.scope !9, !noalias !12 - %179 = select i1 %177, i64 %178, i64 0 - %180 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %172, i32 0, i32 1 - %181 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %180, i32 0, i32 0 - %182 = load i64, i64 addrspace(11)* %181, align 8, !alias.scope !9, !noalias !12 - %183 = icmp slt i64 %182, 0 - %184 = xor i1 %183, true - %185 = load i64, i64 addrspace(11)* %181, align 8, !alias.scope !9, !noalias !12 - %186 = select i1 %184, i64 %185, i64 0 - %187 = sub i64 %171, 1 - %188 = icmp ne i64 %187, -9223372036854775808 - %189 = icmp ne i64 %179, -1 - %190 = or i1 %189, %188 - %191 = icmp ne i64 %179, 0 - %192 = and i1 %191, %190 - br i1 %192, label %pass12, label %fail11 - -L512: ; preds = %pass14 - %193 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %170, i32 0, i32 0 - %194 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %193, i32 0, i32 0 - br label %L523 - -L523: ; preds = %L512 - br label %L524 - -L524: ; preds = %L523 - br label %L525 - -L525: ; preds = %L524 - %195 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %193, i32 0, i32 1 - %196 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %193, i32 0, i32 2 - br label %L536 - -L536: ; preds = %L525 - br label %L537 - -L537: ; preds = %L536 - br label %L538 - -L538: ; preds = %L537 - br label %L547 - -L547: ; preds = %L538 - br label %L548 - -L548: ; preds = %L547 - br label %L549 - -L549: ; preds = %L548 - br label %L550 - -L550: ; preds = %L549 - br label %L551 - -L551: ; preds = %L550 - br label %L552 - -L552: ; preds = %L551 - br label %L553 - -L553: ; preds = %L552 - br label %L554 - -L554: ; preds = %L553 - %197 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 - %198 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %197, i32 0, i32 0 - %199 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %198, i32 0, i32 0 - %200 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %199, i32 0, i32 0 - %201 = sub i64 %318, 1 - %202 = load i64, i64 addrspace(11)* %200, align 8, !alias.scope !9, !noalias !12 - %203 = mul i64 %201, %202 - %204 = add i64 %203, %332 - %205 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 - %206 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %205, i32 0, i32 0 - %207 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %206, i32 0, i32 1 - %208 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %207, i32 0, i32 0 - %209 = sub i64 %327, 1 - %210 = load i64, i64 addrspace(11)* %208, align 8, !alias.scope !9, !noalias !12 - %211 = mul i64 %209, %210 - %212 = add i64 %211, %341 - %213 = getelementptr inbounds [2 x [1 x [3 x [1 x i64]]]], [2 x [1 x [3 x [1 x i64]]]] addrspace(11)* %134, i32 0, i32 1 - %214 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %213, i32 0, i32 0 - %215 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %214, i32 0, i32 2 - %216 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %215, i32 0, i32 0 - %217 = sub i64 %328, 1 - %218 = load i64, i64 addrspace(11)* %216, align 8, !alias.scope !9, !noalias !12 - %219 = mul i64 %217, %218 - %220 = add i64 %219, %342 - br label %L576 - -L576: ; preds = %L554 - %221 = getelementptr inbounds { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] } addrspace(11)* %6, i32 0, i32 0 - %222 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(11)* %221, i32 0, i32 0 - %223 = getelementptr inbounds [1 x [3 x [1 x i64]]], [1 x [3 x [1 x i64]]] addrspace(5)* %17, i32 0, i32 0 - %224 = bitcast [3 x [1 x i64]] addrspace(5)* %223 to i8 addrspace(5)* - %225 = bitcast [3 x [1 x i64]] addrspace(11)* %222 to i8 addrspace(11)* - call void @llvm.memcpy.p5i8.p11i8.i64(i8 addrspace(5)* align 8 %224, i8 addrspace(11)* %225, i64 24, i1 false), !alias.scope !17, !noalias !18 - br label %L613 - -L613: ; preds = %L576 - %226 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %222, i32 0, i32 0 - %227 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %226, i32 0, i32 0 - %228 = load i64, i64 addrspace(11)* %227, align 8, !alias.scope !9, !noalias !12 - %229 = icmp slt i64 %228, 0 - %230 = xor i1 %229, true - %231 = load i64, i64 addrspace(11)* %227, align 8, !alias.scope !9, !noalias !12 - %232 = select i1 %230, i64 %231, i64 0 - %233 = getelementptr inbounds [3 x [1 x i64]], [3 x [1 x i64]] addrspace(11)* %222, i32 0, i32 1 - %234 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %233, i32 0, i32 0 - %235 = load i64, i64 addrspace(11)* %234, align 8, !alias.scope !9, !noalias !12 - %236 = icmp slt i64 %235, 0 - %237 = xor i1 %236, true - %238 = load i64, i64 addrspace(11)* %234, align 8, !alias.scope !9, !noalias !12 - %239 = select i1 %237, i64 %238, i64 0 - %240 = mul i64 1, %232 - %241 = sub i64 %204, 1 - %242 = mul i64 %241, 1 - %243 = add i64 1, %242 - %244 = mul i64 %240, %239 - %245 = sub i64 %212, 1 - %246 = mul i64 %245, %240 - %247 = add i64 %243, %246 - %248 = sub i64 %220, 1 - %249 = mul i64 %248, %244 - %250 = add i64 %247, %249 - br label %L653 - -L653: ; preds = %L613 - br label %L654 - -L654: ; preds = %L653 - br label %L655 - -L655: ; preds = %L654 - br label %L656 - -L656: ; preds = %L655 - br label %L657 - -L657: ; preds = %L656 - %251 = sub i64 0, %2 - %252 = icmp sle i64 %251, %2 - %253 = xor i1 %252, true - br i1 %253, label %L661, label %L660 - -L660: ; preds = %L657 - br label %L663 - -L661: ; preds = %L657 - %254 = sub i64 %251, 1 - br label %L663 - -L663: ; preds = %L661, %L660 - %value_phi = phi i64 [ %2, %L660 ], [ %254, %L661 ] - br label %L665 - -L665: ; preds = %L663 - br label %L666 - -L666: ; preds = %L665 - %255 = icmp slt i64 %value_phi, %251 - %256 = xor i1 %255, true - br i1 %256, label %L669, label %L668 - -L668: ; preds = %L666 - br label %L670 - -L669: ; preds = %L666 - br label %L670 - -L670: ; preds = %L669, %L668 - %value_phi15 = phi i8 [ 1, %L668 ], [ 0, %L669 ] - %value_phi16 = phi i64 [ %251, %L669 ], [ undef, %L668 ] - %257 = trunc i8 %value_phi15 to i1 - %258 = xor i1 %257, true - %259 = xor i1 %258, true - br i1 %259, label %L670.L717_crit_edge, label %L670.L674_crit_edge - -L670.L717_crit_edge: ; preds = %L670 - br label %L717 - -L670.L674_crit_edge: ; preds = %L670 - br label %L674 - -L674: ; preds = %L716, %L670.L674_crit_edge - %value_phi17 = phi i64 [ %value_phi16, %L670.L674_crit_edge ], [ %value_phi27, %L716 ] - %value_phi18 = phi double [ 0.000000e+00, %L670.L674_crit_edge ], [ %value_phi26, %L716 ] - %260 = sub i64 0, %3 - %261 = icmp sle i64 %260, %3 - %262 = xor i1 %261, true - br i1 %262, label %L680, label %L679 - -L679: ; preds = %L674 - br label %L682 - -L680: ; preds = %L674 - %263 = sub i64 %260, 1 - br label %L682 - -L682: ; preds = %L680, %L679 - %value_phi19 = phi i64 [ %3, %L679 ], [ %263, %L680 ] - br label %L684 - -L684: ; preds = %L682 - br label %L685 - -L685: ; preds = %L684 - %264 = icmp slt i64 %value_phi19, %260 - %265 = xor i1 %264, true - br i1 %265, label %L688, label %L687 - -L687: ; preds = %L685 - br label %L689 - -L688: ; preds = %L685 - br label %L689 - -L689: ; preds = %L688, %L687 - %value_phi20 = phi i8 [ 1, %L687 ], [ 0, %L688 ] - %value_phi21 = phi i64 [ %260, %L688 ], [ undef, %L687 ] - %266 = trunc i8 %value_phi20 to i1 - %267 = xor i1 %266, true - %268 = xor i1 %267, true - br i1 %268, label %L689.L706_crit_edge, label %L689.L693_crit_edge - -L689.L706_crit_edge: ; preds = %L689 - br label %L706 - -L689.L693_crit_edge: ; preds = %L689 - br label %L693 - -L693: ; preds = %L705, %L689.L693_crit_edge - %value_phi22 = phi double [ %value_phi18, %L689.L693_crit_edge ], [ %269, %L705 ] - %value_phi23 = phi i64 [ %value_phi21, %L689.L693_crit_edge ], [ %value_phi24, %L705 ] - %269 = fadd double %value_phi22, 2.000000e+00 - %270 = icmp eq i64 %value_phi23, %value_phi19 - %271 = xor i1 %270, true - br i1 %271, label %L699, label %L698 - -L698: ; preds = %L693 - br label %L701 - -L699: ; preds = %L693 - %272 = add i64 %value_phi23, 1 - br label %L701 - -L701: ; preds = %L699, %L698 - %value_phi24 = phi i64 [ %272, %L699 ], [ undef, %L698 ] - %value_phi25 = phi i8 [ 1, %L698 ], [ 0, %L699 ] - %273 = trunc i8 %value_phi25 to i1 - %274 = xor i1 %273, true - %275 = xor i1 %274, true - br i1 %275, label %L701.L706_crit_edge, label %L705 - -L701.L706_crit_edge: ; preds = %L701 - br label %L706 - -L705: ; preds = %L701 - br label %L693 - -L706: ; preds = %L701.L706_crit_edge, %L689.L706_crit_edge - %value_phi26 = phi double [ %269, %L701.L706_crit_edge ], [ %value_phi18, %L689.L706_crit_edge ] - %276 = icmp eq i64 %value_phi17, %value_phi - %277 = xor i1 %276, true - br i1 %277, label %L710, label %L709 - -L709: ; preds = %L706 - br label %L712 - -L710: ; preds = %L706 - %278 = add i64 %value_phi17, 1 - br label %L712 - -L712: ; preds = %L710, %L709 - %value_phi27 = phi i64 [ %278, %L710 ], [ undef, %L709 ] - %value_phi28 = phi i8 [ 1, %L709 ], [ 0, %L710 ] - %279 = trunc i8 %value_phi28 to i1 - %280 = xor i1 %279, true - %281 = xor i1 %280, true - br i1 %281, label %L712.L717_crit_edge, label %L716 - -L712.L717_crit_edge: ; preds = %L712 - br label %L717 - -L716: ; preds = %L712 - br label %L674 - -L717: ; preds = %L712.L717_crit_edge, %L670.L717_crit_edge - %value_phi29 = phi double [ %value_phi26, %L712.L717_crit_edge ], [ 0.000000e+00, %L670.L717_crit_edge ] - br label %L732 - -L732: ; preds = %L717 - %282 = getelementptr inbounds { [3 x i64], i8 addrspace(1)*, i64 }, { [3 x i64], i8 addrspace(1)*, i64 } addrspace(11)* %8, i32 0, i32 1 - %283 = sub i64 %250, 1 - %284 = load i8 addrspace(1)*, i8 addrspace(1)* addrspace(11)* %282, align 8, !alias.scope !9, !noalias !12 - %285 = bitcast i8 addrspace(1)* %284 to double addrspace(1)* - %286 = getelementptr inbounds double, double addrspace(1)* %285, i64 %283 - store double %value_phi29, double addrspace(1)* %286, align 8, !tbaa !19 - br label %L737 - -L737: ; preds = %L732 - br label %L738 - -L738: ; preds = %L737, %L298 - ret void - -fail: ; preds = %L40 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass: ; preds = %L40 - %287 = sdiv i64 %50, %42 - %288 = mul i64 %42, %287 - %289 = sub i64 %50, %288 - %290 = add i64 %289, 1 - %291 = icmp ne i64 %287, -9223372036854775808 - %292 = icmp ne i64 %49, -1 - %293 = or i1 %292, %291 - %294 = icmp ne i64 %49, 0 - %295 = and i1 %294, %293 - br i1 %295, label %pass2, label %fail1 - -fail1: ; preds = %pass - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass2: ; preds = %pass - %296 = sdiv i64 %287, %49 - %297 = mul i64 %49, %296 - %298 = sub i64 %287, %297 - %299 = add i64 %298, 1 - %300 = add i64 %296, 1 - br label %L94 - -fail3: ; preds = %L160 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass4: ; preds = %L160 - %301 = sdiv i64 %77, %69 - %302 = mul i64 %69, %301 - %303 = sub i64 %77, %302 - %304 = add i64 %303, 1 - %305 = icmp ne i64 %301, -9223372036854775808 - %306 = icmp ne i64 %76, -1 - %307 = or i1 %306, %305 - %308 = icmp ne i64 %76, 0 - %309 = and i1 %308, %307 - br i1 %309, label %pass6, label %fail5 - -fail5: ; preds = %pass4 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass6: ; preds = %pass4 - %310 = sdiv i64 %301, %76 - %311 = mul i64 %76, %310 - %312 = sub i64 %301, %311 - %313 = add i64 %312, 1 - %314 = add i64 %310, 1 - br label %L214 - -fail7: ; preds = %L338 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass8: ; preds = %L338 - %315 = sdiv i64 %160, %152 - %316 = mul i64 %152, %315 - %317 = sub i64 %160, %316 - %318 = add i64 %317, 1 - %319 = icmp ne i64 %315, -9223372036854775808 - %320 = icmp ne i64 %159, -1 - %321 = or i1 %320, %319 - %322 = icmp ne i64 %159, 0 - %323 = and i1 %322, %321 - br i1 %323, label %pass10, label %fail9 - -fail9: ; preds = %pass8 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass10: ; preds = %pass8 - %324 = sdiv i64 %315, %159 - %325 = mul i64 %159, %324 - %326 = sub i64 %315, %325 - %327 = add i64 %326, 1 - %328 = add i64 %324, 1 - br label %L392 - -fail11: ; preds = %L458 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass12: ; preds = %L458 - %329 = sdiv i64 %187, %179 - %330 = mul i64 %179, %329 - %331 = sub i64 %187, %330 - %332 = add i64 %331, 1 - %333 = icmp ne i64 %329, -9223372036854775808 - %334 = icmp ne i64 %186, -1 - %335 = or i1 %334, %333 - %336 = icmp ne i64 %186, 0 - %337 = and i1 %336, %335 - br i1 %337, label %pass14, label %fail13 - -fail13: ; preds = %pass12 - call fastcc void @gpu_signal_exception() - call void @llvm.trap() - unreachable - -pass14: ; preds = %pass12 - %338 = sdiv i64 %329, %186 - %339 = mul i64 %186, %338 - %340 = sub i64 %329, %339 - %341 = add i64 %340, 1 - %342 = add i64 %338, 1 - br label %L512 -} - -; Function Attrs: alwaysinline -define internal fastcc void @gpu_signal_exception() unnamed_addr #4 { -top: - %0 = alloca { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, align 8, addrspace(5) - %1 = call {}*** @julia.get_pgcstack() - %2 = bitcast {}*** %1 to {}** - %current_task = getelementptr inbounds {}*, {}** %2, i64 -14 - %3 = bitcast {}** %current_task to i64* - %world_age = getelementptr inbounds i64, i64* %3, i64 15 - %state.i = call { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } @julia.gpu.state_getter() - store { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } %state.i, { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } addrspace(5)* %0, align 8 - %4 = getelementptr inbounds { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 }, { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } addrspace(5)* %0, i32 0, i32 0 - %5 = bitcast i64 addrspace(5)* %4 to i8* addrspace(5)* - %6 = load i8*, i8* addrspace(5)* %5, align 8, !tbaa !22, !alias.scope !26, !noalias !27 - %7 = getelementptr inbounds i8, i8* %6, i64 0 - %8 = bitcast i8* %7 to i32* - %9 = load i32, i32 addrspace(1)* @_j_const1, align 1, !tbaa !28, !alias.scope !32, !noalias !33 - store i32 %9, i32* %8, align 1 - call void @llvm.amdgcn.endpgm() - unreachable -} - -; Function Attrs: readnone -declare { i64, i64, i64, i64, i64, i64, i32, i32, i64, i64, i64, i64 } @julia.gpu.state_getter() local_unnamed_addr #5 - -; Function Attrs: cold noreturn nounwind -declare void @llvm.amdgcn.endpgm() #1 - -attributes #0 = { argmemonly nocallback nofree nounwind willreturn } -attributes #1 = { cold noreturn nounwind } -attributes #2 = { nounwind readnone speculatable willreturn } -attributes #3 = { "amdgpu-unsafe-fp-atomics"="true" "target-cpu"="gfx1100" "target-features"="+wavefrontsize32,-wavefrontsize64" } -attributes #4 = { alwaysinline } -attributes #5 = { readnone } - -!llvm.module.flags = !{!0, !1, !2, !3} -!opencl.ocl.version = !{!4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4, !4} -!llvm.ident = !{!5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5, !5} -!julia.kernel = !{!6} - -!0 = !{i32 2, !"Dwarf Version", i32 4} -!1 = !{i32 2, !"Debug Info Version", i32 3} -!2 = !{i32 1, !"wchar_size", i32 4} -!3 = !{i32 7, !"PIC Level", i32 1} -!4 = !{i32 2, i32 0} -!5 = !{!"clang version 15.0.0 (/cache/yggdrasil/downloads/clones/llvm-project.git-974efd367bc513231526d317489c66cb27727ef3caa41108e3819c131a8acf57 f3d695fc2985a8dfdd5f4219d351fdeac3038867)"} -!6 = !{void ({ [1 x [3 x [1 x i64]]], [2 x [1 x [3 x [1 x i64]]]] }, { [3 x i64], i8 addrspace(1)*, i64 }, i64, i64, i64)* @_Z14gpu_kernel_xx_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILl3E5TupleI5OneToI5Int64ES4_IS5_ES4_IS5_EEE7NDRangeILl3ES0_S0_S2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEES2_ILl3ES3_IS4_IS5_ES4_IS5_ES4_IS5_EEEEE14ROCDeviceArrayI7Float64Ll3ELl1EES5_S5_S5_} -!7 = !{i32 0, i32 -2} -!8 = !{i32 0, i32 1023} -!9 = !{!10} -!10 = !{!"jnoalias_const", !11} -!11 = !{!"jnoalias"} -!12 = !{!13, !14, !15, !16} -!13 = !{!"jnoalias_gcframe", !11} -!14 = !{!"jnoalias_stack", !11} -!15 = !{!"jnoalias_data", !11} -!16 = !{!"jnoalias_typemd", !11} -!17 = !{!10, !14} -!18 = !{!13, !15, !16} -!19 = !{!20, !20, i64 0, i64 0} -!20 = !{!"custom_tbaa_addrspace(1)", !21, i64 0} -!21 = !{!"custom_tbaa"} -!22 = !{!23, !23, i64 0} -!23 = !{!"jtbaa_stack", !24, i64 0} -!24 = !{!"jtbaa", !25, i64 0} -!25 = !{!"jtbaa"} -!26 = !{!14} -!27 = !{!13, !15, !16, !10} -!28 = !{!29, !29, i64 0} -!29 = !{!"jtbaa_immut", !30, i64 0} -!30 = !{!"jtbaa_value", !31, i64 0} -!31 = !{!"jtbaa_data", !24, i64 0} -!32 = !{!15} -!33 = !{!13, !14, !16, !10} From 51dae541c516b70aa200456578ba5d8540adcbc5 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Thu, 12 Sep 2024 21:35:37 +0300 Subject: [PATCH 10/10] Minor fix --- ext/EnzymeCoreExt/EnzymeCoreExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/EnzymeCoreExt/EnzymeCoreExt.jl b/ext/EnzymeCoreExt/EnzymeCoreExt.jl index 4adc86291..46e621738 100644 --- a/ext/EnzymeCoreExt/EnzymeCoreExt.jl +++ b/ext/EnzymeCoreExt/EnzymeCoreExt.jl @@ -185,7 +185,7 @@ function EnzymeRules.augmented_primal( kernel_args = ((rocconvert(a) for a in args)...,) kernel_tt = map(typeof, kernel_args) - ModifiedBetween = overwritten(config) + ModifiedBetween = EnzymeRules.overwritten(config) compiler_job = EnzymeCore.compiler_job_from_backend( ROCBackend(), typeof(Base.identity), Tuple{Float64}) TapeType = EnzymeCore.tape_type(