From 45c2fb41cc788eca63fe24061e74166e27090da2 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 5 Sep 2021 22:33:36 +0300 Subject: [PATCH] matching el_i8 and el_i16 cmp impls --- src/builtins/cmp.c | 14 ++++++++++++++ src/h.h | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/builtins/cmp.c b/src/builtins/cmp.c index 2931c6f1..abfc9f13 100644 --- a/src/builtins/cmp.c +++ b/src/builtins/cmp.c @@ -15,6 +15,20 @@ if (wa&xa && !eqShape(w, x)) thrF(CHR": Expected equal shape prefix (%H ≡ ≢𝕨, %H ≡ ≢𝕩)", w, x); \ u8 we = wa? TI(w,elType) : selfElType(w); \ u8 xe = xa? TI(x,elType) : selfElType(x); \ + if (we==el_i8 && xe==el_i8) { \ + i8* rp; B r = m_i8arrc(&rp, isArr(x)? x : w); usz ria=a(r)->ia; /* (i8)o2iu safe bc _e==el_i8 */ \ + if (!wa) { i8 wv=o2iu(w); i8* xp=i8any_ptr(x); for(usz i=0;iia; \ + if (!wa) { i16 wv=o2iu(w); i16* xp=i16any_ptr(x); for(usz i=0;iia; \ if (!wa) { i32 wv=o2iu(w); i32* xp=i32any_ptr(x); for(usz i=0;i