From 8ab7465844bf01609c938d96be6a96ee1206c24d Mon Sep 17 00:00:00 2001 From: Chris Elrod Date: Wed, 26 Jun 2024 12:18:38 -0400 Subject: [PATCH] returns incorrect results on m1... --- test/gemm.jl | 2 +- test/miscellaneous.jl | 18 ++++++++++++++---- test/special.jl | 10 ++++++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/test/gemm.jl b/test/gemm.jl index 73cb7955f..aa43a70c1 100644 --- a/test/gemm.jl +++ b/test/gemm.jl @@ -421,7 +421,7 @@ if LoopVectorization.cache_linesize() == LoopVectorization.register_size() @test LoopVectorization.choose_order(lsr2amb) == ([:n, :m, :k], :m, :n, :m, 3, 7) else - @test LoopVectorization.choose_order(lsr2amb) == ([:m, :n, :k], :m, :n, :m, 3, 7) + @test LoopVectorization.choose_order(lsr2amb) == ([:n, :m, :k], :m, :n, :m, 3, 7) end elseif LoopVectorization.register_count() == 16 if LoopVectorization.pick_vector_width(Float64) == 4 diff --git a/test/miscellaneous.jl b/test/miscellaneous.jl index ccd4738f5..9a3f79fdd 100644 --- a/test/miscellaneous.jl +++ b/test/miscellaneous.jl @@ -137,8 +137,13 @@ end # # @test LoopVectorization.choose_order(lscolsum) == (Symbol[:j,:i], :j, :i, :j, Unum, Tnum) # @test LoopVectorization.choose_order(lscolsum) == (Symbol[:j,:i], :j, :i, :j, 1, 1) # end - @test LoopVectorization.choose_order(lscolsum) == - (Symbol[:j, :i], :j, Symbol("##undefined##"), :j, 4, -1) + if Sys.ARCH === :aarch64 + @test LoopVectorization.choose_order(lscolsum) == + (Symbol[:j, :i], :j, Symbol("##undefined##"), :j, 8, -1) + else + @test LoopVectorization.choose_order(lscolsum) == + (Symbol[:j, :i], :j, Symbol("##undefined##"), :j, 4, -1) + end # my colsum is wrong (by 0.25), but slightly more interesting function mycolsum!(x, A) @. x = 0 @@ -177,8 +182,13 @@ end # LoopVectorization.choose_order(lsvar) # @test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, :i, :j, Unum, Tnum) # if LoopVectorization.register_count() == 32 - @test LoopVectorization.choose_order(lsvar) == - (Symbol[:j, :i], :j, Symbol("##undefined##"), :j, 4, -1) + if Sys.ARCH === :aarch64 + @test LoopVectorization.choose_order(lsvar) == + (Symbol[:j, :i], :j, Symbol("##undefined##"), :j, 8, -1) + else + @test LoopVectorization.choose_order(lsvar) == + (Symbol[:j, :i], :j, Symbol("##undefined##"), :j, 4, -1) + end # @test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, :i, :j, 2, 10) # else#if LoopVectorization.register_count() == 16 # @test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, Symbol("##undefined##"), :j, 8, -1) diff --git a/test/special.jl b/test/special.jl index d3a89cacd..2d0ac0592 100644 --- a/test/special.jl +++ b/test/special.jl @@ -5,8 +5,14 @@ end ) lsvexp = LoopVectorization.loopset(vexpq) - @test LoopVectorization.choose_order(lsvexp) == - (Symbol[:i], :i, Symbol("##undefined##"), :i, 2, -1) + if Sys.ARCH === :aarch64 + # returned `4` on an M1... + @test LoopVectorization.choose_order(lsvexp) == + (Symbol[:i], :i, Symbol("##undefined##"), :i, 4, -1) + else + @test LoopVectorization.choose_order(lsvexp) == + (Symbol[:i], :i, Symbol("##undefined##"), :i, 2, -1) + end function myvexp!(b, a) @inbounds for i ∈ eachindex(a)