Skip to content

Commit c37380d

Browse files
committed
More methods
1 parent 242dcc4 commit c37380d

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

src/base_defs.jl

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,14 @@ end
270270
y, z = promote(b, c)
271271
vifelse(a, y, z)
272272
end
273+
@inline function IfElse.ifelse(
274+
a::Vec{<:Any,Bool},
275+
b::AbstractSIMD,
276+
c::AbstractSIMD
277+
)
278+
y, z = promote(b, c)
279+
vifelse(tomask(a), y, z)
280+
end
273281
@inline function IfElse.ifelse(
274282
a::AbstractMask,
275283
b::AbstractSIMD,
@@ -278,6 +286,14 @@ end
278286
y, z = promote(b, c)
279287
vifelse(a, y, z)
280288
end
289+
@inline function IfElse.ifelse(
290+
a::Vec{<:Any,Bool},
291+
b::AbstractSIMD,
292+
c::NativeTypes
293+
)
294+
y, z = promote(b, c)
295+
vifelse(tomask(a), y, z)
296+
end
281297
@inline function IfElse.ifelse(
282298
a::AbstractMask,
283299
b::NativeTypes,
@@ -286,6 +302,14 @@ end
286302
y, z = promote(b, c)
287303
vifelse(a, y, z)
288304
end
305+
@inline function IfElse.ifelse(
306+
a::Vec{<:Any,Bool},
307+
b::NativeTypes,
308+
c::AbstractSIMD
309+
)
310+
y, z = promote(b, c)
311+
vifelse(tomask(a), y, z)
312+
end
289313
@inline function IfElse.ifelse(a::Bool, b::AbstractSIMD, c::AbstractSIMD)
290314
y, z = promote(b, c)
291315
vifelse(a, y, z)
@@ -298,6 +322,14 @@ end
298322
y, z = promote(b, c)
299323
vifelse(a, y, z)
300324
end
325+
@inline function IfElse.ifelse(
326+
a::Vec{<:Any,Bool},
327+
b::NativeTypes,
328+
c::NativeTypes
329+
)
330+
y, z = promote(b, c)
331+
vifelse(tomask(a), y, z)
332+
end
301333
@inline function IfElse.ifelse(a::Bool, b::AbstractSIMD, c::NativeTypes)
302334
y, z = promote(b, c)
303335
vifelse(a, y, z)

test/runtests.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,11 +392,11 @@ include("testsetup.jl")
392392
end
393393
@test convert(Bool, Mask{8}(0xec)) ===
394394
Vec(false, false, true, true, false, true, true, true) ===
395-
VectorizationBase.ifelse(
395+
convert(Bool, VectorizationBase.ifelse(
396396
convert(Bool, Mask{8}(0xec)),
397397
vbroadcast(Val(8), true),
398398
vbroadcast(Val(8), false)
399-
)
399+
))
400400

401401
@test (MM{8}(2) 3:8) === Mask{8}(0x7e)
402402

0 commit comments

Comments
 (0)