simpler bitsel for ∨
This commit is contained in:
parent
ce1c81219e
commit
311aa74303
@ -286,8 +286,6 @@ static void powAAu_f64_f64_f64(u8* r, u8* w, u8* x, u64 len) { for (u64 i = 0;
|
|||||||
static void stileAAu_f64_f64_f64(u8* r, u8* w, u8* x, u64 len) { for (u64 i = 0; i < len; i++) ((f64*)r)[i] = pfmod(((f64*)x)[i], ((f64*)w)[i]); }
|
static void stileAAu_f64_f64_f64(u8* r, u8* w, u8* x, u64 len) { for (u64 i = 0; i < len; i++) ((f64*)r)[i] = pfmod(((f64*)x)[i], ((f64*)w)[i]); }
|
||||||
static void logAAu_f64_f64_f64(u8* r, u8* w, u8* x, u64 len) { for (u64 i = 0; i < len; i++) ((f64*)r)[i] = log(((f64*)x)[i])/log(((f64*)w)[i]); }
|
static void logAAu_f64_f64_f64(u8* r, u8* w, u8* x, u64 len) { for (u64 i = 0; i < len; i++) ((f64*)r)[i] = log(((f64*)x)[i])/log(((f64*)w)[i]); }
|
||||||
|
|
||||||
#define BI_C2(N, W, X) ({ B w_ = (W); N##_c2(w_, w_, X); })
|
|
||||||
// bool sub_forBitselCN_SA (DyTableSA* table, B w, B* r) { u32 v=o2cu(w); r[0] = m_c32(v-0); r[1] = m_c32(v-1); if (v==0) BI_C2(sub, w, m_f64(1)); return true; }
|
|
||||||
bool add_forBitselNN_SA (DyTableSA* table, B w, B* r) { f64 f=o2fu(w); r[0] = m_f64(f+0); r[1] = m_f64(f+1); return true; }
|
bool add_forBitselNN_SA (DyTableSA* table, B w, B* r) { f64 f=o2fu(w); r[0] = m_f64(f+0); r[1] = m_f64(f+1); return true; }
|
||||||
bool sub_forBitselNN_SA (DyTableSA* table, B w, B* r) { f64 f=o2fu(w); r[0] = m_f64(f-0); r[1] = m_f64(f-1); return true; }
|
bool sub_forBitselNN_SA (DyTableSA* table, B w, B* r) { f64 f=o2fu(w); r[0] = m_f64(f-0); r[1] = m_f64(f-1); return true; }
|
||||||
bool subR_forBitselNN_SA(DyTableSA* table, B w, B* r) { f64 f=o2fu(w); r[0] = m_f64(0-f); r[1] = m_f64(1-f); return true; }
|
bool subR_forBitselNN_SA(DyTableSA* table, B w, B* r) { f64 f=o2fu(w); r[0] = m_f64(0-f); r[1] = m_f64(1-f); return true; }
|
||||||
@ -304,7 +302,8 @@ static NOINLINE B or_SA(B t, B w, B x) {
|
|||||||
if (!isF64(w)) return arith_recd(or_c2, w, x);
|
if (!isF64(w)) return arith_recd(or_c2, w, x);
|
||||||
if (LIKELY(TI(x,elType)==el_bit)) {
|
if (LIKELY(TI(x,elType)==el_bit)) {
|
||||||
bitsel:
|
bitsel:
|
||||||
return bit_sel(x, BI_C2(or, w, m_f64(0)), 1, BI_C2(or, w, m_f64(1)), 1);
|
f64 wf = o2fu(w);
|
||||||
|
return bit_sel(x, m_f64(bqn_or(wf, 0)), 1, m_f64(bqn_or(wf, 1)), 1);
|
||||||
}
|
}
|
||||||
x = num_squeezeChk(x);
|
x = num_squeezeChk(x);
|
||||||
if (TI(x,elType)==el_bit) goto bitsel;
|
if (TI(x,elType)==el_bit) goto bitsel;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user