1
-
2
1
# unary # 2^2 - 2 = 2 definitions
3
2
@inline fmap (f:: F , x:: Tuple{X} ) where {F,X} = (f (first (x)),)
4
3
@inline fmap (f:: F , x:: NTuple ) where {F} = (f (first (x)), fmap (f, Base. tail (x))... )
@@ -90,9 +89,9 @@ for op ∈ [:vgt,:vge,:vlt,:vle,:veq,:vne,:vmax,:vmax_fast,:vmin,:vmin_fast]
90
89
end
91
90
92
91
for op ∈ [:vrem , :vshl , :vashr , :vlshr , :vdiv , :vfdiv , :vrem_fast , :vfdiv_fast ]
93
- @eval begin
94
- @inline $ op (v1:: VecUnroll , v2:: VecUnroll ) = VecUnroll (fmap ($ op, getfield (v1, :data ), getfield (v2, :data )))
95
- end
92
+ @eval begin
93
+ @inline $ op (v1:: VecUnroll , v2:: VecUnroll ) = VecUnroll (fmap ($ op, getfield (v1, :data ), getfield (v2, :data )))
94
+ end
96
95
end
97
96
for op ∈ [:vrem , :vand , :vor , :vxor , :vshl , :vashr , :vlshr , :vlt , :vle ,:vgt ,:vge ,:veq ,:vne ]
98
97
@eval begin
@@ -101,7 +100,11 @@ for op ∈ [:vrem, :vand, :vor, :vxor, :vshl, :vashr, :vlshr, :vlt, :vle,:vgt,:v
101
100
end
102
101
end
103
102
for op ∈ [:vshl , :vashr , :vlshr ]
104
- @eval @inline $ op (m:: AbstractMask , vu:: VecUnroll ) = $ op (Vec (m), vu)
103
+ @eval begin
104
+ @inline $ op (m:: AbstractMask , vu:: VecUnroll ) = $ op (Vec (m), vu)
105
+ @inline $ op (v1:: AbstractSIMDVector , v2:: VecUnroll ) = VecUnroll (fmap ($ op, v1, getfield (v2, :data )))
106
+ @inline $ op (v1:: VecUnroll , v2:: AbstractSIMDVector ) = VecUnroll (fmap ($ op, getfield (v1, :data ), v2))
107
+ end
105
108
end
106
109
for op ∈ [:rotate_left ,:rotate_right ,:funnel_shift_left ,:funnel_shift_right ]
107
110
@eval begin
238
241
# @inline vminimum(vu::VecUnroll) = vminimum(collapse_min(vu))
239
242
# @inline vall(vu::VecUnroll) = vall(collapse_and(vu))
240
243
# @inline vany(vu::VecUnroll) = vany(collapse_or(vu))
241
-
0 commit comments