From 4d4561a578387e5765fd9fadcb35969dcc61d43a Mon Sep 17 00:00:00 2001 From: x Date: Mon, 15 Jul 2019 15:26:14 +0200 Subject: [PATCH] IcBench App: External libs --- ext/beplug_.h | 2 +- ext/beplugc_.c | 2 +- ext/beplugd_.c | 2 +- ext/beplugr_.h | 14 +++++++------- ext/polycom/optpfd.o | Bin 18864 -> 0 bytes ext/polycom/polyvbyte.o | Bin 1640 -> 0 bytes ext/simdcomp_/simdfor.o | Bin 63816 -> 0 bytes 7 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 ext/polycom/optpfd.o delete mode 100644 ext/polycom/polyvbyte.o delete mode 100644 ext/simdcomp_/simdfor.o diff --git a/ext/beplug_.h b/ext/beplug_.h index 1c76835..668e5e6 100644 --- a/ext/beplug_.h +++ b/ext/beplug_.h @@ -2,7 +2,7 @@ #define C_VINTG8IU 0 #define C_MASKEDVBYTE 0 #endif - #if C_FASTPFOR + #if C_FASTPFOR128 #include "FastPFor/headers/variablebyte.h" #include "FastPFor/headers/simple16.h" #include "FastPFor/headers/simple8b_rle.h" diff --git a/ext/beplugc_.c b/ext/beplugc_.c index e11939b..cadbf37 100644 --- a/ext/beplugc_.c +++ b/ext/beplugc_.c @@ -3,7 +3,7 @@ case AM_SIMPLE8B:return vs8benc( in, n, out); #endif - #if C_FASTPFOR + #if C_FASTPFOR128 case FP_FASTPFOR: { size_t nvalue = outsize/4; FastPForLib::FastPFor<4> ic; ic.encodeArray((const uint32_t *)in, n & (~127), (uint32_t *)(out+4), nvalue); diff --git a/ext/beplugd_.c b/ext/beplugd_.c index 6b7b261..1e5aa6b 100644 --- a/ext/beplugd_.c +++ b/ext/beplugd_.c @@ -6,7 +6,7 @@ case AM_SIMPLE8B: return vs8bdec( in, n, out); #endif - #if C_FASTPFOR + #if C_FASTPFOR128 case FP_FASTPFOR: { size_t nvalue = n; FastPForLib::FastPFor<4> ic; const uint32_t *ip = ic.decodeArray((const uint32_t *)(in+4), ctou32(in), out, nvalue); diff --git a/ext/beplugr_.h b/ext/beplugr_.h index f0fff56..2d56784 100644 --- a/ext/beplugr_.h +++ b/ext/beplugr_.h @@ -13,13 +13,13 @@ { P_MASKEDVBYTE, "MaskedVbyte", C_MASKEDVBYTE, 0, 0,"","Variable byte SIMD" }, { P_STREAMVBYTE, "StreamVbyte", C_STREAMVBYTE, 0, 0,"","Variable byte SIMD" }, - { FP_FASTPFOR, "FP_FastPFor", C_FASTPFOR, 0, 0,"","PFor scalar (inefficient for small blocks)" }, - { FP_SIMDFASTPFOR,"FP_SimdFastPFor", C_FASTPFOR, 0, 0,"","PFor SIMD (inefficient for small blocks)" }, - { FP_OPTPFOR, "FP_OptPFor", C_FASTPFOR, 0, 0,"","OptPFor scalar" }, - { FP_SIMDOPTPFOR, "FP_SIMDOptPFor", C_FASTPFOR, 0, 0,"","OptPFor SIMD" }, - { FP_VBYTE, "FP_VByte", C_FASTPFOR, 0, 0,"","Variable byte" }, - { FP_SIMPLE8BRLE, "FP_Simple8bRLE", C_FASTPFOR, 0, 0,"","Simple-8b + rle" }, - { FP_GROUPSIMPLE, "FP_GROUPSIMPLE", C_FASTPFOR, 0, 0,"","Group Simple" }, + { FP_FASTPFOR, "FP_FastPFor", C_FASTPFOR128, 0, 0,"","PFor scalar (inefficient for small blocks)" }, + { FP_SIMDFASTPFOR,"FP_SimdFastPFor", C_FASTPFOR128, 0, 0,"","PFor SIMD (inefficient for small blocks)" }, + { FP_OPTPFOR, "FP_OptPFor", C_FASTPFOR128, 0, 0,"","OptPFor scalar" }, + { FP_SIMDOPTPFOR, "FP_SIMDOptPFor", C_FASTPFOR128, 0, 0,"","OptPFor SIMD" }, + { FP_VBYTE, "FP_VByte", C_FASTPFOR128, 0, 0,"","Variable byte" }, + { FP_SIMPLE8BRLE, "FP_Simple8bRLE", C_FASTPFOR128, 0, 0,"","Simple-8b + rle" }, + { FP_GROUPSIMPLE, "FP_GROUPSIMPLE", C_FASTPFOR128, 0, 0,"","Group Simple" }, { SC_SIMDPACK128, "SC_SIMDPack128", C_SIMDCOMP128, BLK_V128,0,"","Bit packing (SSE4.1)"}, { SC_SIMDPACK256, "SC_SIMDPack256", C_SIMDCOMP128, BLK_V256,0,"","Bit packing (SSE4.1)"}, diff --git a/ext/polycom/optpfd.o b/ext/polycom/optpfd.o deleted file mode 100644 index 7b0e56c43540f7e2cfd806636334762902735193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18864 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 E0BH!0_y7O^ diff --git a/ext/polycom/polyvbyte.o b/ext/polycom/polyvbyte.o deleted file mode 100644 index b7d9ccd4e923e87237e831ca5cefac8399ad78e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 zcmb<-^>JfjWMqH=Mg}_u1P><4z_5ZD!FB*M9T>P7xENZ$@waSdU|{HV`|r~m($3=1 zdEvDizdVC$%Yl+&pU#_}orgU-Po(Mb%eR1aIX0hQbnRgF>5X9Y?Db}BKF8?LVc^m0 z$k=>}(WCh|i(`kdO9!Wq<@J*IZhnxe&QqP|96L|A^zv{Xe8qn79iQXD7ov=p4!)FO z{N~DdfZ=4xl;)F+9?b`sIz0ZpUf|I3t#nz-r4oLK-LIGM%Qt{5_UJqaGTx{22E_Q% zg@-*lFC3l#a{mmN`(2t?JUV~8*5sFG;NMokc<>>6=Rb!F?;QBIePjIC{G74W5M)m$ zmq+s<79Yz)C5rsp3_N-(7&|{+c-j1nk$>CC(&G?WkIo-HmWN93ALidy!GviJr$_Sv z=GWW6_7pH5e8}$6e1HXR)9bm2@bc*VahSo~+1W}#BQ&WrucTDLLeE&wK-a7k%rn%4 z@EJrvo@8KPV5|yaV5|^el;&aQn83)uAi%)DAOn@#52Zn322l1AD2gB zGh^72bk_1yhJb&E?9 zld~E0ic)hD^-?q9(~1&vQ=v9dMoELx1_J{|h(hu*149ZZqLHisr4b}9gCbNvdJHZ> z(+AUoF09VLz`(%(N*gd05Sm#1I#Byz=@z1!fdQsp1ttKcVfMplQ>cEZG@LpCQver% zFwlj)p!z{^4N(ChVfta=2oZ(&6~+e9t_%#|REw@o0UDq%e}TdXli C8sG!~ diff --git a/ext/simdcomp_/simdfor.o b/ext/simdcomp_/simdfor.o deleted file mode 100644 index 52169a203953a4822bf3a627dbc9aa65d6619dd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63816 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 LLc$>TB5@f2r=hZ&