| @@ -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 | ||||