mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +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> | ||||
| #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 | ||||
| extern "C" { | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Aaron Teo
					Aaron Teo