mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	ggml-cpu: import vecintrin.h to fix compiler errors
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
This commit is contained in:
		| @@ -28,6 +28,56 @@ | |||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if defined(__VXE__) || defined(__VXE2__) | ||||||
|  | #include <vecintrin.h> | ||||||
|  |  | ||||||
|  | #define vec_neg(a)    (-(a))                // Vector Negate | ||||||
|  | #define vec_add(a, b) ((a) + (b))           // Vector Add | ||||||
|  | #define vec_sub(a, b) ((a) - (b))           // Vector Subtract | ||||||
|  | #define vec_mul(a, b) ((a) * (b))           // Vector Multiply | ||||||
|  | #define vec_div(a, b) ((a) / (b))           // Vector Divide | ||||||
|  | #define vec_sl(a, b)  ((a) << (b))          // Vector Shift Left | ||||||
|  | #define vec_sra(a, b) ((a) >> (b))          // Vector Shift Right | ||||||
|  | #define vec_sr(a, b)  ((a) >> (b))          // Vector Shift Right Algebraic | ||||||
|  | #define vec_slo(a, b) vec_slb(a, (b) << 64) // Vector Shift Left by Octet | ||||||
|  | #define vec_sro(a, b) vec_srb(a, (b) << 64) // Vector Shift Right by Octet | ||||||
|  |  | ||||||
|  | #ifndef vec_and | ||||||
|  | #define vec_and(a, b) ((a) & (b)) // Vector AND | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef vec_or | ||||||
|  | #define vec_or(a, b)  ((a) | (b)) // Vector OR | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef vec_xor | ||||||
|  | #define vec_xor(a, b) ((a) ^ (b)) // Vector XOR | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef signed   char char8x16_t  __attribute__((vector_size(16))); | ||||||
|  | typedef unsigned char uchar8x16_t __attribute__((vector_size(16))); | ||||||
|  |  | ||||||
|  | typedef int8_t  int8x16_t __attribute__((vector_size(16))); | ||||||
|  | typedef int16_t int16x8_t __attribute__((vector_size(16))); | ||||||
|  | typedef int32_t int32x4_t __attribute__((vector_size(16))); | ||||||
|  |  | ||||||
|  | typedef uint8_t  uint8x16_t __attribute__((vector_size(16))); | ||||||
|  | typedef uint16_t uint16x8_t __attribute__((vector_size(16))); | ||||||
|  | typedef uint32_t uint32x4_t __attribute__((vector_size(16))); | ||||||
|  |  | ||||||
|  | typedef float  float32x4_t  __attribute__((vector_size(16))); | ||||||
|  | typedef double double64x2_t __attribute__((vector_size(16))); | ||||||
|  |  | ||||||
|  | typedef signed   long long long64x2_t  __attribute__((vector_size(16))); | ||||||
|  | typedef unsigned long long ulong64x2_t __attribute__((vector_size(16))); | ||||||
|  |  | ||||||
|  | #if defined(GGML_NNPA) | ||||||
|  | #ifndef __NNPA__ | ||||||
|  | #define __NNPA__ | ||||||
|  | #endif  // __NNPA__ | ||||||
|  | #endif  // __s390x__ && GGML_NNPA | ||||||
|  | #endif  // __VXE__ || __VXE2__ | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| extern "C" { | extern "C" { | ||||||
| #endif | #endif | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Aaron Teo
					Aaron Teo