summaryrefslogtreecommitdiff
path: root/kaldi_io/src/tools/ATLAS/include/contrib/camm_tpipe.h
diff options
context:
space:
mode:
Diffstat (limited to 'kaldi_io/src/tools/ATLAS/include/contrib/camm_tpipe.h')
-rw-r--r--kaldi_io/src/tools/ATLAS/include/contrib/camm_tpipe.h331
1 files changed, 331 insertions, 0 deletions
diff --git a/kaldi_io/src/tools/ATLAS/include/contrib/camm_tpipe.h b/kaldi_io/src/tools/ATLAS/include/contrib/camm_tpipe.h
new file mode 100644
index 0000000..03486cf
--- /dev/null
+++ b/kaldi_io/src/tools/ATLAS/include/contrib/camm_tpipe.h
@@ -0,0 +1,331 @@
+/***************************************
+ $Header: /cvsroot/math-atlas/AtlasBase/kernel/CammMaguire/camm_tpipe.h,v 1.2 2003/10/18 18:13:30 yycamm Exp $
+
+
+***************************************/
+
+
+/* #ifndef CAMM_TPIPE_H */
+/* #define CAMM_TPIPE_H */ /*+ To stop multiple inclusions. +*/
+
+#ifndef BITS
+#error BITS must be defined in camm_tpipe.h
+#endif
+#ifndef DIV
+#error DIV must be defined in camm_tpipe.h
+#endif
+#ifndef INC
+#error INC(a_) must be defined in camm_tpipe.h
+#endif
+#ifndef LR
+#error LR must be defined in camm_tpipe.h
+#endif
+
+#ifdef ALIGN
+
+#if defined(SREAL)
+
+ test(4,ax)
+ je(a2)
+
+#undef KB
+#define KB ( 1 /* / DIV */ )
+#include "camm_pipe3.h"
+
+ KB_block
+ INC(4)
+ sub(1,LR)
+
+ lab(a2)
+
+#endif
+
+#if defined(SREAL) || defined(DREAL)
+
+ test(8,ax)
+ je(a4)
+ test(-2,LR)
+ je(a4)
+
+#undef KB
+#define KB ( 2 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(8)
+ sub(2,LR)
+
+ lab(a4)
+
+#endif
+#endif
+
+/* "movl %%edx,%%edi\n\t" */
+ push(LR)
+ shr(BITS,LR)
+ shl(BITS,LR)
+ m(4,LR)
+ ra(ax,LR)
+
+#if defined(ALIGN) && ( defined(SCPLX) || defined(DCPLX) )
+ test(12,ax)
+ je(loopa)
+#endif
+
+#if !defined(ALIGN) || defined(SCPLX) || defined(DCPLX)
+#undef plq
+#define plq(a_,b_,c_) pl(a_,b_,c_)
+#undef puq
+#define puq(a_,b_,c_) pu(a_,b_,c_)
+#undef plqx
+#define plqx(a_,b_,c_,d_,e_) plx(a_,b_,c_,d_,e_)
+#undef puqx
+#define puqx(a_,b_,c_,d_,e_) pux(a_,b_,c_,d_,e_)
+#else
+#undef plq
+#define plq(a_,b_,c_) pla(a_,b_,c_)
+#undef puq
+#define puq(a_,b_,c_) punt(a_,b_,c_)
+#undef plqx
+#define plqx(a_,b_,c_,d_,e_) plax(a_,b_,c_,d_,e_)
+#undef puqx
+#define puqx(a_,b_,c_,d_,e_) puax(a_,b_,c_,d_,e_)
+#endif
+
+ align
+ lab(loop)
+ cmp(ax,LR)
+ je(stop)
+
+#undef KB
+#define KB ( (1 << BITS) /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(4*KB/**DIV*/)
+
+ jmp(loop)
+
+ lab(stop)
+ pop(LR)
+
+#if ( 1 << BITS ) > 128
+ test(128,LR)
+ je(64)
+#undef KB
+#define KB ( 128 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(512)
+
+ lab(64)
+#endif
+
+#if ( 1 << BITS ) > 64
+ test(64,LR)
+ je(32)
+#undef KB
+#define KB ( 64 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(256)
+
+ lab(32)
+#endif
+
+#if ( 1 << BITS ) > 32
+ test(32,LR)
+ je(16)
+#undef KB
+#define KB ( 32 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(128)
+
+ lab(16)
+#endif
+
+#if ( 1 << BITS ) > 16
+ test(16,LR)
+ je(8)
+#undef KB
+#define KB ( 16 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(64)
+
+ lab(8)
+#endif
+
+#if ( 1 << BITS ) > 8
+ test(8,LR)
+ je(4)
+#undef KB
+#define KB ( 8 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(32)
+
+ lab(4)
+#endif
+
+#if ( 1 << BITS ) > 4
+ test(4,LR)
+ je(2)
+#undef KB
+#define KB ( 4 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(16)
+
+ lab(2)
+#endif
+
+#if DIV != 4 && ( 1 << BITS ) > 2
+ test(2,LR)
+ je(1)
+#undef KB
+#define KB ( 2 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(8)
+
+ lab(1)
+#endif
+
+#if DIV == 1 && ( 1 << BITS ) > 1
+ test(1,LR)
+ je(end)
+#undef KB
+#define KB ( 1 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ lab(end)
+#endif
+
+#if defined (ALIGN) && ( defined(SCPLX) || defined(DCPLX) )
+
+ jmp(tend)
+
+#undef plq
+#define plq(a_,b_,c_) pla(a_,b_,c_)
+#undef puq
+#define puq(a_,b_,c_) punt(a_,b_,c_)
+#undef plqx
+#define plqx(a_,b_,c_,d_,e_) plax(a_,b_,c_,d_,e_)
+#undef puqx
+#define puqx(a_,b_,c_,d_,e_) puax(a_,b_,c_,d_,e_)
+
+ align
+ lab(loopa)
+ cmp(ax,LR)
+ je(stopa)
+
+#undef KB
+#define KB ( (1 << BITS) /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(4*KB/**DIV*/)
+
+ jmp(loopa)
+
+ lab(stopa)
+ pop(LR)
+
+#if ( 1 << BITS ) > 128
+ test(128,LR)
+ je(64a)
+#undef KB
+#define KB ( 128 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(512)
+
+ lab(64a)
+#endif
+
+#if ( 1 << BITS ) > 64
+ test(64,LR)
+ je(32a)
+#undef KB
+#define KB ( 64 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(256)
+
+ lab(32a)
+#endif
+
+#if ( 1 << BITS ) > 32
+ test(32,LR)
+ je(16a)
+#undef KB
+#define KB ( 32 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(128)
+
+ lab(16a)
+#endif
+
+#if ( 1 << BITS ) > 16
+ test(16,LR)
+ je(8a)
+#undef KB
+#define KB ( 16 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(64)
+
+ lab(8a)
+#endif
+
+#if ( 1 << BITS ) > 8
+ test(8,LR)
+ je(4a)
+#undef KB
+#define KB ( 8 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(32)
+
+ lab(4a)
+#endif
+
+#if ( 1 << BITS ) > 4
+ test(4,LR)
+ je(2a)
+#undef KB
+#define KB ( 4 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(16)
+
+ lab(2a)
+#endif
+
+#if DIV != 4 && ( 1 << BITS ) > 2
+ test(2,LR)
+ je(1a)
+#undef KB
+#define KB ( 2 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ INC(8)
+
+ lab(1a)
+#endif
+
+#if DIV == 1 && ( 1 << BITS ) > 1
+ test(1,LR)
+ je(enda)
+#undef KB
+#define KB ( 1 /* / DIV */ )
+#include "camm_pipe3.h"
+ KB_block
+ lab(enda)
+#endif
+
+ lab(tend)
+
+#endif
+
+/* #endif */ /* CAMM_TPIPE_H */