Exclude altivec code paths if the compiler does not support them
This commit is contained in:
parent
9796e552ea
commit
661c6bfa5a
|
@ -47,8 +47,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "casum_microk_power8.c"
|
#include "casum_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "ccopy_microk_power8.c"
|
#include "ccopy_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,9 @@ 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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/zdot.c"
|
||||||
|
#else
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
|
@ -168,3 +171,4 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
|
||||||
return (result);
|
return (result);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -23,7 +23,10 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/zgemv_n.c"
|
||||||
|
#else
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -591,4 +594,4 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha_r, FLOAT alpha_i,
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -23,7 +23,10 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/zgemv_t.c"
|
||||||
|
#else
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
@ -595,4 +598,4 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha_r, FLOAT alpha_i,
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -28,6 +28,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
static void crot_kernel_8 (long n, float *x, float *y, float c, float s)
|
static void crot_kernel_8 (long n, float *x, float *y, float c, float s)
|
||||||
{
|
{
|
||||||
|
@ -169,6 +170,7 @@ static void crot_kernel_8 (long n, float *x, float *y, float c, float s)
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT c, FLOAT s)
|
int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT c, FLOAT s)
|
||||||
|
|
|
@ -37,8 +37,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "cswap_microk_power8.c"
|
#include "cswap_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
|
@ -47,8 +47,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "dasum_microk_power8.c"
|
#include "dasum_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
|
@ -37,8 +37,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "daxpy_microk_power8.c"
|
#include "daxpy_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "dcopy_microk_power8.c"
|
#include "dcopy_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "ddot_microk_power8.c"
|
#include "ddot_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
|
|
|
@ -39,8 +39,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "dgemv_n_microk_power8.c"
|
#include "dgemv_n_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define NBMAX 4096
|
#define NBMAX 4096
|
||||||
|
|
|
@ -25,15 +25,19 @@ 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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/gemv_t.c"
|
||||||
|
#else
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#define NBMAX 1024
|
#define NBMAX 1024
|
||||||
//#define PREFETCH 1
|
//#define PREFETCH 1
|
||||||
|
|
||||||
#include <altivec.h>
|
#include <altivec.h>
|
||||||
|
|
||||||
#define HAVE_KERNEL4x8_ASM 1
|
#define HAVE_KERNEL4x8_ASM 1
|
||||||
|
|
||||||
|
|
||||||
#if defined(HAVE_KERNEL4x8_ASM)
|
#if defined(HAVE_KERNEL4x8_ASM)
|
||||||
static void dgemv_kernel_4x8(BLASLONG n, BLASLONG lda, double *ap, double *x, double *y, double alpha) {
|
static void dgemv_kernel_4x8(BLASLONG n, BLASLONG lda, double *ap, double *x, double *y, double alpha) {
|
||||||
|
|
||||||
|
@ -883,4 +887,5 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#pragma GCC optimize "O1"
|
#pragma GCC optimize "O1"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "drot_microk_power8.c"
|
#include "drot_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "dscal_microk_power8.c"
|
#include "dscal_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(HAVE_KERNEL_8)
|
#if !defined(HAVE_KERNEL_8)
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "dswap_microk_power8.c"
|
#include "dswap_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include <altivec.h>
|
#include <altivec.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(DOUBLE)
|
#if defined(DOUBLE)
|
||||||
|
|
||||||
#define ABS fabs
|
#define ABS fabs
|
||||||
|
@ -37,6 +40,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find maximum index
|
* Find maximum index
|
||||||
* Warning: requirements n>0 and n % 32 == 0
|
* Warning: requirements n>0 and n % 32 == 0
|
||||||
|
@ -313,6 +318,7 @@ static BLASLONG diamax_kernel_32(BLASLONG n, FLOAT *x, FLOAT *maxf) {
|
||||||
return index;
|
return index;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
||||||
BLASLONG i = 0;
|
BLASLONG i = 0;
|
||||||
|
@ -326,12 +332,15 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
||||||
|
|
||||||
BLASLONG n1 = n & -32;
|
BLASLONG n1 = n & -32;
|
||||||
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
if (n1 > 0) {
|
if (n1 > 0) {
|
||||||
|
|
||||||
max = diamax_kernel_32(n1, x, &maxf);
|
max = diamax_kernel_32(n1, x, &maxf);
|
||||||
|
|
||||||
i = n1;
|
i = n1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
while (i < n) {
|
while (i < n) {
|
||||||
if (ABS(x[i]) > maxf) {
|
if (ABS(x[i]) > maxf) {
|
||||||
|
|
|
@ -37,6 +37,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find minimum index
|
* Find minimum index
|
||||||
* Warning: requirements n>0 and n % 32 == 0
|
* Warning: requirements n>0 and n % 32 == 0
|
||||||
|
@ -313,7 +315,7 @@ static BLASLONG diamin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *minf) {
|
||||||
return index;
|
return index;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
||||||
|
@ -327,12 +329,15 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
||||||
if (inc_x == 1) {
|
if (inc_x == 1) {
|
||||||
|
|
||||||
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
BLASLONG n1 = n & -32;
|
BLASLONG n1 = n & -32;
|
||||||
if (n1 > 0) {
|
if (n1 > 0) {
|
||||||
|
|
||||||
min = diamin_kernel_32(n1, x, &minf);
|
min = diamin_kernel_32(n1, x, &minf);
|
||||||
i = n1;
|
i = n1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
while (i < n) {
|
while (i < n) {
|
||||||
if (ABS(x[i]) < minf) {
|
if (ABS(x[i]) < minf) {
|
||||||
|
|
|
@ -34,6 +34,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find maximum index
|
* Find maximum index
|
||||||
|
@ -299,7 +300,7 @@ static BLASLONG ziamax_kernel_16(BLASLONG n, FLOAT *x, FLOAT *maxf) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -317,6 +318,8 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
||||||
if (inc_x == 1) {
|
if (inc_x == 1) {
|
||||||
|
|
||||||
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
BLASLONG n1 = n & -16;
|
BLASLONG n1 = n & -16;
|
||||||
if (n1 > 0) {
|
if (n1 > 0) {
|
||||||
|
|
||||||
|
@ -324,6 +327,7 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
||||||
i = n1;
|
i = n1;
|
||||||
ix = n1 << 1;
|
ix = n1 << 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while(i < n)
|
while(i < n)
|
||||||
|
|
|
@ -24,7 +24,6 @@ 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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
@ -32,6 +31,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ABS fabs
|
#define ABS fabs
|
||||||
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1])
|
#define CABS1(x,i) ABS(x[i])+ABS(x[i+1])
|
||||||
|
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find minimum index
|
* Find minimum index
|
||||||
|
@ -296,6 +296,7 @@ static BLASLONG ziamin_kernel_16_TUNED(BLASLONG n, FLOAT *x, FLOAT *minf) {
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -316,6 +317,8 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
||||||
minf = CABS1(x,0); //index will not be incremented
|
minf = CABS1(x,0); //index will not be incremented
|
||||||
|
|
||||||
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
#if defined(_CALL_ELF) && (_CALL_ELF == 2)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
BLASLONG n1 = n & -16;
|
BLASLONG n1 = n & -16;
|
||||||
if (n1 > 0) {
|
if (n1 > 0) {
|
||||||
|
|
||||||
|
@ -323,6 +326,7 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
||||||
i = n1;
|
i = n1;
|
||||||
ix = n1 << 1;
|
ix = n1 << 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while(i < n)
|
while(i < n)
|
||||||
|
@ -359,5 +363,3 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "sasum_microk_power8.c"
|
#include "sasum_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
|
@ -30,6 +30,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
#include <altivec.h>
|
#include <altivec.h>
|
||||||
|
@ -62,6 +63,7 @@ static void saxpy_kernel_64(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT alpha)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2)
|
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2)
|
||||||
{
|
{
|
||||||
|
@ -74,11 +76,13 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
|
||||||
{
|
{
|
||||||
|
|
||||||
BLASLONG n1 = n & -64;
|
BLASLONG n1 = n & -64;
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
if ( n1 )
|
if ( n1 )
|
||||||
saxpy_kernel_64(n1, x, y, da);
|
saxpy_kernel_64(n1, x, y, da);
|
||||||
|
|
||||||
i = n1;
|
i = n1;
|
||||||
|
#endif
|
||||||
while(i < n)
|
while(i < n)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "scopy_microk_power8.c"
|
#include "scopy_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
#include "sdot_microk_power8.c"
|
#include "sdot_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
|
@ -24,7 +24,10 @@ 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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/gemv_n.c"
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
@ -463,4 +466,5 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,10 @@ 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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/gemv_t.c"
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
@ -477,3 +481,4 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -40,8 +40,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#pragma GCC optimize "O1"
|
#pragma GCC optimize "O1"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "srot_microk_power8.c"
|
#include "srot_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "sscal_microk_power8.c"
|
#include "sscal_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if !defined(HAVE_KERNEL_16)
|
#if !defined(HAVE_KERNEL_16)
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "sswap_microk_power8.c"
|
#include "sswap_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_32
|
#ifndef HAVE_KERNEL_32
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "zasum_microk_power8.c"
|
#include "zasum_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
|
|
|
@ -37,8 +37,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "zaxpy_microk_power8.c"
|
#include "zaxpy_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_4
|
#ifndef HAVE_KERNEL_4
|
||||||
|
|
|
@ -36,8 +36,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "zcopy_microk_power8.c"
|
#include "zcopy_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "zdot_microk_power8.c"
|
#include "zdot_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
|
@ -93,9 +95,11 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG in
|
||||||
FLOAT dot[4] = { 0.0, 0.0, 0.0 , 0.0 } ;
|
FLOAT dot[4] = { 0.0, 0.0, 0.0 , 0.0 } ;
|
||||||
|
|
||||||
if ( n <= 0 )
|
if ( n <= 0 )
|
||||||
{
|
{ /*
|
||||||
__real__ result = 0.0 ;
|
__real__ result = 0.0 ;
|
||||||
__imag__ result = 0.0 ;
|
__imag__ result = 0.0 ;
|
||||||
|
*/
|
||||||
|
result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0,0.0);
|
||||||
return(result);
|
return(result);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -149,11 +153,17 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG in
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(CONJ)
|
#if !defined(CONJ)
|
||||||
|
/*
|
||||||
__real__ result = dot[0] - dot[1];
|
__real__ result = dot[0] - dot[1];
|
||||||
__imag__ result = dot[2] + dot[3];
|
__imag__ result = dot[2] + dot[3];
|
||||||
|
*/
|
||||||
|
result = OPENBLAS_MAKE_COMPLE_FLOAT(dot[0]-dot[1],dot[2]+dot[3]);
|
||||||
#else
|
#else
|
||||||
|
/*
|
||||||
__real__ result = dot[0] + dot[1];
|
__real__ result = dot[0] + dot[1];
|
||||||
__imag__ result = dot[2] - dot[3];
|
__imag__ result = dot[2] - dot[3];
|
||||||
|
*/
|
||||||
|
result = OPENBLAS_MAKE_COMPLE_FLOAT(dot[0]+dot[1],dot[2]-dot[3]);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
#define HAVE_KERNEL_4x4_VEC 1
|
#define HAVE_KERNEL_4x4_VEC 1
|
||||||
#define HAVE_KERNEL_4x2_VEC 1
|
#define HAVE_KERNEL_4x2_VEC 1
|
||||||
#define HAVE_KERNEL_4x1_VEC 1
|
#define HAVE_KERNEL_4x1_VEC 1
|
||||||
|
@ -37,6 +39,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#if defined(HAVE_KERNEL_4x4_VEC) || defined(HAVE_KERNEL_4x2_VEC) || defined(HAVE_KERNEL_4x1_VEC)
|
#if defined(HAVE_KERNEL_4x4_VEC) || defined(HAVE_KERNEL_4x2_VEC) || defined(HAVE_KERNEL_4x1_VEC)
|
||||||
#include <altivec.h>
|
#include <altivec.h>
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
#define NBMAX 4096
|
#define NBMAX 4096
|
||||||
|
|
|
@ -28,10 +28,13 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#define NBMAX 4096
|
#define NBMAX 4096
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
|
|
||||||
#define HAVE_KERNEL_4x4_VEC 1
|
#define HAVE_KERNEL_4x4_VEC 1
|
||||||
#define HAVE_KERNEL_4x2_VEC 1
|
#define HAVE_KERNEL_4x2_VEC 1
|
||||||
#define HAVE_KERNEL_4x1_VEC 1
|
#define HAVE_KERNEL_4x1_VEC 1
|
||||||
|
|
||||||
|
#endif
|
||||||
#if defined(HAVE_KERNEL_4x4_VEC) || defined(HAVE_KERNEL_4x2_VEC) || defined(HAVE_KERNEL_4x1_VEC)
|
#if defined(HAVE_KERNEL_4x4_VEC) || defined(HAVE_KERNEL_4x2_VEC) || defined(HAVE_KERNEL_4x1_VEC)
|
||||||
#include <altivec.h>
|
#include <altivec.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -24,6 +24,9 @@ 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
|
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.
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||||
|
#include "../arm/zrot.c"
|
||||||
|
#else
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
@ -262,4 +265,4 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -39,10 +39,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#pragma GCC optimize "O1"
|
#pragma GCC optimize "O1"
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#if defined(DOUBLE)
|
#if defined(DOUBLE)
|
||||||
#include "zscal_microk_power8.c"
|
#include "zscal_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_8
|
#ifndef HAVE_KERNEL_8
|
||||||
|
|
|
@ -37,8 +37,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
|
||||||
|
#if defined(__VEC__) || defined(__ALTIVEC__)
|
||||||
#include "zswap_microk_power8.c"
|
#include "zswap_microk_power8.c"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_KERNEL_16
|
#ifndef HAVE_KERNEL_16
|
||||||
|
|
Loading…
Reference in New Issue