From 8cf8da291a0fb2f491f410969a76ec0fbda47faf Mon Sep 17 00:00:00 2001 From: "Field G. Van Zee" Date: Fri, 20 Feb 2015 15:24:27 -0600 Subject: [PATCH] Minor updates to induced complex mode management. Details: - Relocated bli_4mh.c, bli_4mb.c, bli_4m.c, bli_3mh.c, bli_3m.c (and associated headers) from frame/base to frame/base/induced. - Added bli_xm.? to frame/base/induced, which implements bli_xm_is_enabled(), which detects whether ANY induced complex method is currently enabled. - The new function bli_xm_is_enabled() is now used in bli_info.c to detect when an induced complex method is used, so we know when to return blocksizes from one of the induced methods' blocksize objects. --- frame/base/bli_info.c | 154 ++++++++++++++++------------- frame/base/{ => induced}/bli_3m.c | 0 frame/base/{ => induced}/bli_3m.h | 0 frame/base/{ => induced}/bli_3mh.c | 0 frame/base/{ => induced}/bli_3mh.h | 0 frame/base/{ => induced}/bli_4m.c | 0 frame/base/{ => induced}/bli_4m.h | 0 frame/base/{ => induced}/bli_4mb.c | 0 frame/base/{ => induced}/bli_4mb.h | 0 frame/base/{ => induced}/bli_4mh.c | 0 frame/base/{ => induced}/bli_4mh.h | 0 frame/base/induced/bli_xm.c | 61 ++++++++++++ frame/base/induced/bli_xm.h | 39 ++++++++ frame/include/blis.h | 7 +- 14 files changed, 192 insertions(+), 69 deletions(-) rename frame/base/{ => induced}/bli_3m.c (100%) rename frame/base/{ => induced}/bli_3m.h (100%) rename frame/base/{ => induced}/bli_3mh.c (100%) rename frame/base/{ => induced}/bli_3mh.h (100%) rename frame/base/{ => induced}/bli_4m.c (100%) rename frame/base/{ => induced}/bli_4m.h (100%) rename frame/base/{ => induced}/bli_4mb.c (100%) rename frame/base/{ => induced}/bli_4mb.h (100%) rename frame/base/{ => induced}/bli_4mh.c (100%) rename frame/base/{ => induced}/bli_4mh.h (100%) create mode 100644 frame/base/induced/bli_xm.c create mode 100644 frame/base/induced/bli_xm.h diff --git a/frame/base/bli_info.c b/frame/base/bli_info.c index 8c99db722..302de89a2 100644 --- a/frame/base/bli_info.c +++ b/frame/base/bli_info.c @@ -111,12 +111,14 @@ gint_t bli_info_get_default_mc( num_t dt ) } gint_t bli_info_get_default_mc_s( void ) { bli_init(); return bli_blksz_for_type( BLIS_FLOAT, gemm_mc ); } gint_t bli_info_get_default_mc_d( void ) { bli_init(); return bli_blksz_for_type( BLIS_DOUBLE, gemm_mc ); } -gint_t bli_info_get_default_mc_c( void ) { bli_init(); return bli_blksz_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_mc - : gemm_mc ) ); } -gint_t bli_info_get_default_mc_z( void ) { bli_init(); return bli_blksz_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_mc - : gemm_mc ) ); } +gint_t bli_info_get_default_mc_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_mc; + else bsize = gemm_mc; + return bli_blksz_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_default_mc_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_mc; + else bsize = gemm_mc; + return bli_blksz_for_type( BLIS_DCOMPLEX, bsize ); } // NC default blocksizes @@ -130,12 +132,14 @@ gint_t bli_info_get_default_nc( num_t dt ) } gint_t bli_info_get_default_nc_s( void ) { bli_init(); return bli_blksz_for_type( BLIS_FLOAT, gemm_nc ); } gint_t bli_info_get_default_nc_d( void ) { bli_init(); return bli_blksz_for_type( BLIS_DOUBLE, gemm_nc ); } -gint_t bli_info_get_default_nc_c( void ) { bli_init(); return bli_blksz_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_nc - : gemm_nc ) ); } -gint_t bli_info_get_default_nc_z( void ) { bli_init(); return bli_blksz_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_nc - : gemm_nc ) ); } +gint_t bli_info_get_default_nc_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_nc; + else bsize = gemm_nc; + return bli_blksz_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_default_nc_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_nc; + else bsize = gemm_nc; + return bli_blksz_for_type( BLIS_DCOMPLEX, bsize ); } // KC default blocksizes @@ -149,12 +153,14 @@ gint_t bli_info_get_default_kc( num_t dt ) } gint_t bli_info_get_default_kc_s( void ) { bli_init(); return bli_blksz_for_type( BLIS_FLOAT, gemm_kc ); } gint_t bli_info_get_default_kc_d( void ) { bli_init(); return bli_blksz_for_type( BLIS_DOUBLE, gemm_kc ); } -gint_t bli_info_get_default_kc_c( void ) { bli_init(); return bli_blksz_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_kc - : gemm_kc ) ); } -gint_t bli_info_get_default_kc_z( void ) { bli_init(); return bli_blksz_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_kc - : gemm_kc ) ); } +gint_t bli_info_get_default_kc_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_kc; + else bsize = gemm_kc; + return bli_blksz_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_default_kc_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_kc; + else bsize = gemm_kc; + return bli_blksz_for_type( BLIS_DCOMPLEX, bsize ); } // -- Maximum cache blocksizes -- @@ -171,12 +177,14 @@ gint_t bli_info_get_maximum_mc( num_t dt ) } gint_t bli_info_get_maximum_mc_s( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_FLOAT, gemm_mc ); } gint_t bli_info_get_maximum_mc_d( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DOUBLE, gemm_mc ); } -gint_t bli_info_get_maximum_mc_c( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_mc - : gemm_mc ) ); } -gint_t bli_info_get_maximum_mc_z( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_mc - : gemm_mc ) ); } +gint_t bli_info_get_maximum_mc_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_mc; + else bsize = gemm_mc; + return bli_blksz_max_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_maximum_mc_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_mc; + else bsize = gemm_mc; + return bli_blksz_max_for_type( BLIS_DCOMPLEX, bsize ); } // NC maximum blocksizes @@ -190,12 +198,14 @@ gint_t bli_info_get_maximum_nc( num_t dt ) } gint_t bli_info_get_maximum_nc_s( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_FLOAT, gemm_nc ); } gint_t bli_info_get_maximum_nc_d( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DOUBLE, gemm_nc ); } -gint_t bli_info_get_maximum_nc_c( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_nc - : gemm_nc ) ); } -gint_t bli_info_get_maximum_nc_z( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_nc - : gemm_nc ) ); } +gint_t bli_info_get_maximum_nc_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_nc; + else bsize = gemm_nc; + return bli_blksz_max_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_maximum_nc_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_nc; + else bsize = gemm_nc; + return bli_blksz_max_for_type( BLIS_DCOMPLEX, bsize ); } // KC maximum blocksizes @@ -209,12 +219,14 @@ gint_t bli_info_get_maximum_kc( num_t dt ) } gint_t bli_info_get_maximum_kc_s( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_FLOAT, gemm_kc ); } gint_t bli_info_get_maximum_kc_d( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DOUBLE, gemm_kc ); } -gint_t bli_info_get_maximum_kc_c( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_kc - : gemm_kc ) ); } -gint_t bli_info_get_maximum_kc_z( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_kc - : gemm_kc ) ); } +gint_t bli_info_get_maximum_kc_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_kc; + else bsize = gemm_kc; + return bli_blksz_max_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_maximum_kc_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_kc; + else bsize = gemm_kc; + return bli_blksz_max_for_type( BLIS_DCOMPLEX, bsize ); } // -- Default register blocksizes -- @@ -239,12 +251,14 @@ gint_t bli_info_get_default_mr( num_t dt ) } gint_t bli_info_get_default_mr_s( void ) { bli_init(); return bli_blksz_for_type( BLIS_FLOAT, gemm_mr ); } gint_t bli_info_get_default_mr_d( void ) { bli_init(); return bli_blksz_for_type( BLIS_DOUBLE, gemm_mr ); } -gint_t bli_info_get_default_mr_c( void ) { bli_init(); return bli_blksz_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_mr - : gemm_mr ) ); } -gint_t bli_info_get_default_mr_z( void ) { bli_init(); return bli_blksz_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_mr - : gemm_mr ) ); } +gint_t bli_info_get_default_mr_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_mr; + else bsize = gemm_mr; + return bli_blksz_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_default_mr_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_mr; + else bsize = gemm_mr; + return bli_blksz_for_type( BLIS_DCOMPLEX, bsize ); } // NR default blocksizes @@ -258,12 +272,14 @@ gint_t bli_info_get_default_nr( num_t dt ) } gint_t bli_info_get_default_nr_s( void ) { bli_init(); return bli_blksz_for_type( BLIS_FLOAT, gemm_nr ); } gint_t bli_info_get_default_nr_d( void ) { bli_init(); return bli_blksz_for_type( BLIS_DOUBLE, gemm_nr ); } -gint_t bli_info_get_default_nr_c( void ) { bli_init(); return bli_blksz_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_nr - : gemm_nr ) ); } -gint_t bli_info_get_default_nr_z( void ) { bli_init(); return bli_blksz_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_nr - : gemm_nr ) ); } +gint_t bli_info_get_default_nr_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_nr; + else bsize = gemm_nr; + return bli_blksz_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_default_nr_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_nr; + else bsize = gemm_nr; + return bli_blksz_for_type( BLIS_DCOMPLEX, bsize ); } // KR default blocksizes @@ -277,12 +293,14 @@ gint_t bli_info_get_default_kr( num_t dt ) } gint_t bli_info_get_default_kr_s( void ) { bli_init(); return bli_blksz_for_type( BLIS_FLOAT, gemm_kr ); } gint_t bli_info_get_default_kr_d( void ) { bli_init(); return bli_blksz_for_type( BLIS_DOUBLE, gemm_kr ); } -gint_t bli_info_get_default_kr_c( void ) { bli_init(); return bli_blksz_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_kr - : gemm_kr ) ); } -gint_t bli_info_get_default_kr_z( void ) { bli_init(); return bli_blksz_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_kr - : gemm_kr ) ); } +gint_t bli_info_get_default_kr_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_kr; + else bsize = gemm_kr; + return bli_blksz_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_default_kr_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_kr; + else bsize = gemm_kr; + return bli_blksz_for_type( BLIS_DCOMPLEX, bsize ); } // -- Packing register blocksizes -- @@ -299,12 +317,14 @@ gint_t bli_info_get_packdim_mr( num_t dt ) } gint_t bli_info_get_packdim_mr_s( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_FLOAT, gemm_mr ); } gint_t bli_info_get_packdim_mr_d( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DOUBLE, gemm_mr ); } -gint_t bli_info_get_packdim_mr_c( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_mr - : gemm_mr ) ); } -gint_t bli_info_get_packdim_mr_z( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_mr - : gemm_mr ) ); } +gint_t bli_info_get_packdim_mr_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_mr; + else bsize = gemm_mr; + return bli_blksz_max_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_packdim_mr_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_mr; + else bsize = gemm_mr; + return bli_blksz_max_for_type( BLIS_DCOMPLEX, bsize ); } // NR packing blocksize @@ -318,12 +338,14 @@ gint_t bli_info_get_packdim_nr( num_t dt ) } gint_t bli_info_get_packdim_nr_s( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_FLOAT, gemm_nr ); } gint_t bli_info_get_packdim_nr_d( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DOUBLE, gemm_nr ); } -gint_t bli_info_get_packdim_nr_c( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_SCOMPLEX, - ( bli_4m_is_enabled_c() ? gemm4m_nr - : gemm_nr ) ); } -gint_t bli_info_get_packdim_nr_z( void ) { bli_init(); return bli_blksz_max_for_type( BLIS_DCOMPLEX, - ( bli_4m_is_enabled_z() ? gemm4m_nr - : gemm_nr ) ); } +gint_t bli_info_get_packdim_nr_c( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_c() ) bsize = gemm4m_nr; + else bsize = gemm_nr; + return bli_blksz_max_for_type( BLIS_SCOMPLEX, bsize ); } +gint_t bli_info_get_packdim_nr_z( void ) { bli_init(); blksz_t* bsize; + if ( bli_xm_is_enabled_z() ) bsize = gemm4m_nr; + else bsize = gemm_nr; + return bli_blksz_max_for_type( BLIS_DCOMPLEX, bsize ); } // -- Micro-panel alignment -- diff --git a/frame/base/bli_3m.c b/frame/base/induced/bli_3m.c similarity index 100% rename from frame/base/bli_3m.c rename to frame/base/induced/bli_3m.c diff --git a/frame/base/bli_3m.h b/frame/base/induced/bli_3m.h similarity index 100% rename from frame/base/bli_3m.h rename to frame/base/induced/bli_3m.h diff --git a/frame/base/bli_3mh.c b/frame/base/induced/bli_3mh.c similarity index 100% rename from frame/base/bli_3mh.c rename to frame/base/induced/bli_3mh.c diff --git a/frame/base/bli_3mh.h b/frame/base/induced/bli_3mh.h similarity index 100% rename from frame/base/bli_3mh.h rename to frame/base/induced/bli_3mh.h diff --git a/frame/base/bli_4m.c b/frame/base/induced/bli_4m.c similarity index 100% rename from frame/base/bli_4m.c rename to frame/base/induced/bli_4m.c diff --git a/frame/base/bli_4m.h b/frame/base/induced/bli_4m.h similarity index 100% rename from frame/base/bli_4m.h rename to frame/base/induced/bli_4m.h diff --git a/frame/base/bli_4mb.c b/frame/base/induced/bli_4mb.c similarity index 100% rename from frame/base/bli_4mb.c rename to frame/base/induced/bli_4mb.c diff --git a/frame/base/bli_4mb.h b/frame/base/induced/bli_4mb.h similarity index 100% rename from frame/base/bli_4mb.h rename to frame/base/induced/bli_4mb.h diff --git a/frame/base/bli_4mh.c b/frame/base/induced/bli_4mh.c similarity index 100% rename from frame/base/bli_4mh.c rename to frame/base/induced/bli_4mh.c diff --git a/frame/base/bli_4mh.h b/frame/base/induced/bli_4mh.h similarity index 100% rename from frame/base/bli_4mh.h rename to frame/base/induced/bli_4mh.h diff --git a/frame/base/induced/bli_xm.c b/frame/base/induced/bli_xm.c new file mode 100644 index 000000000..449e84db3 --- /dev/null +++ b/frame/base/induced/bli_xm.c @@ -0,0 +1,61 @@ +/* + + BLIS + An object-based framework for developing high-performance BLAS-like + libraries. + + Copyright (C) 2014, The University of Texas at Austin + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of The University of Texas at Austin nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +#include "blis.h" + +bool_t bli_xm_is_enabled_dt( num_t dt ) +{ + if ( bli_is_scomplex( dt ) ) return bli_xm_is_enabled_c(); + else if ( bli_is_dcomplex( dt ) ) return bli_xm_is_enabled_z(); + else return FALSE; +} + +bool_t bli_xm_is_enabled_c( void ) +{ + if ( bli_3mh_is_enabled_c() ) return TRUE; + else if ( bli_3m_is_enabled_c() ) return TRUE; + else if ( bli_4mh_is_enabled_c() ) return TRUE; + else if ( bli_4m_is_enabled_c() ) return TRUE; + else return FALSE; +} + +bool_t bli_xm_is_enabled_z( void ) +{ + if ( bli_3mh_is_enabled_z() ) return TRUE; + else if ( bli_3m_is_enabled_z() ) return TRUE; + else if ( bli_4mh_is_enabled_z() ) return TRUE; + else if ( bli_4m_is_enabled_z() ) return TRUE; + else return FALSE; +} + diff --git a/frame/base/induced/bli_xm.h b/frame/base/induced/bli_xm.h new file mode 100644 index 000000000..74f776c36 --- /dev/null +++ b/frame/base/induced/bli_xm.h @@ -0,0 +1,39 @@ +/* + + BLIS + An object-based framework for developing high-performance BLAS-like + libraries. + + Copyright (C) 2014, The University of Texas at Austin + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of The University of Texas at Austin nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +bool_t bli_xm_is_enabled_dt( num_t dt ); + +bool_t bli_xm_is_enabled_c( void ); +bool_t bli_xm_is_enabled_z( void ); + diff --git a/frame/include/blis.h b/frame/include/blis.h index 5c93497e1..61adfdb4e 100644 --- a/frame/include/blis.h +++ b/frame/include/blis.h @@ -115,11 +115,12 @@ extern "C" { #include "bli_info.h" #include "bli_getopt.h" #include "bli_flops.h" -#include "bli_4m.h" -#include "bli_3m.h" +#include "bli_xm.h" #include "bli_4mh.h" -#include "bli_3mh.h" #include "bli_4mb.h" +#include "bli_4m.h" +#include "bli_3mh.h" +#include "bli_3m.h" // Control tree definitions. #include "bli_cntl.h"