master
ブランチ master
VulkanExample / dep / include / glm / simd / platform.h
15.9 KB、469行 生 Blame 履歴
1#pragma once
2
3///////////////////////////////////////////////////////////////////////////////////
4// Platform
5
6#define GLM_PLATFORM_UNKNOWN 0x00000000
7#define GLM_PLATFORM_WINDOWS 0x00010000
8#define GLM_PLATFORM_LINUX 0x00020000
9#define GLM_PLATFORM_APPLE 0x00040000
10//#define GLM_PLATFORM_IOS 0x00080000
11#define GLM_PLATFORM_ANDROID 0x00100000
12#define GLM_PLATFORM_CHROME_NACL 0x00200000
13#define GLM_PLATFORM_UNIX 0x00400000
14#define GLM_PLATFORM_QNXNTO 0x00800000
15#define GLM_PLATFORM_WINCE 0x01000000
16#define GLM_PLATFORM_CYGWIN 0x02000000
17
18#ifdef GLM_FORCE_PLATFORM_UNKNOWN
19# define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
20#elif defined(__CYGWIN__)
21# define GLM_PLATFORM GLM_PLATFORM_CYGWIN
22#elif defined(__QNXNTO__)
23# define GLM_PLATFORM GLM_PLATFORM_QNXNTO
24#elif defined(__APPLE__)
25# define GLM_PLATFORM GLM_PLATFORM_APPLE
26#elif defined(WINCE)
27# define GLM_PLATFORM GLM_PLATFORM_WINCE
28#elif defined(_WIN32)
29# define GLM_PLATFORM GLM_PLATFORM_WINDOWS
30#elif defined(__native_client__)
31# define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL
32#elif defined(__ANDROID__)
33# define GLM_PLATFORM GLM_PLATFORM_ANDROID
34#elif defined(__linux)
35# define GLM_PLATFORM GLM_PLATFORM_LINUX
36#elif defined(__unix)
37# define GLM_PLATFORM GLM_PLATFORM_UNIX
38#else
39# define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
40#endif//
41
42///////////////////////////////////////////////////////////////////////////////////
43// Compiler
44
45#define GLM_COMPILER_UNKNOWN 0x00000000
46
47// Intel
48#define GLM_COMPILER_INTEL 0x00100000
49#define GLM_COMPILER_INTEL14 0x00100040
50#define GLM_COMPILER_INTEL15 0x00100050
51#define GLM_COMPILER_INTEL16 0x00100060
52#define GLM_COMPILER_INTEL17 0x00100070
53#define GLM_COMPILER_INTEL18 0x00100080
54#define GLM_COMPILER_INTEL19 0x00100090
55#define GLM_COMPILER_INTEL21 0x001000A0
56
57// Visual C++ defines
58#define GLM_COMPILER_VC 0x01000000
59#define GLM_COMPILER_VC12 0x01000001 // Visual Studio 2013
60#define GLM_COMPILER_VC14 0x01000002 // Visual Studio 2015
61#define GLM_COMPILER_VC15 0x01000003 // Visual Studio 2017
62#define GLM_COMPILER_VC15_3 0x01000004
63#define GLM_COMPILER_VC15_5 0x01000005
64#define GLM_COMPILER_VC15_6 0x01000006
65#define GLM_COMPILER_VC15_7 0x01000007
66#define GLM_COMPILER_VC15_8 0x01000008
67#define GLM_COMPILER_VC15_9 0x01000009
68#define GLM_COMPILER_VC16 0x0100000A // Visual Studio 2019
69#define GLM_COMPILER_VC17 0x0100000B // Visual Studio 2022
70
71// GCC defines
72#define GLM_COMPILER_GCC 0x02000000
73#define GLM_COMPILER_GCC46 0x020000D0
74#define GLM_COMPILER_GCC47 0x020000E0
75#define GLM_COMPILER_GCC48 0x020000F0
76#define GLM_COMPILER_GCC49 0x02000100
77#define GLM_COMPILER_GCC5 0x02000200
78#define GLM_COMPILER_GCC6 0x02000300
79#define GLM_COMPILER_GCC61 0x02000800
80#define GLM_COMPILER_GCC7 0x02000400
81#define GLM_COMPILER_GCC8 0x02000500
82#define GLM_COMPILER_GCC9 0x02000600
83#define GLM_COMPILER_GCC10 0x02000700
84#define GLM_COMPILER_GCC11 0x02000800
85#define GLM_COMPILER_GCC12 0x02000900
86#define GLM_COMPILER_GCC13 0x02000A00
87#define GLM_COMPILER_GCC14 0x02000B00
88
89// CUDA
90#define GLM_COMPILER_CUDA 0x10000000
91#define GLM_COMPILER_CUDA75 0x10000001
92#define GLM_COMPILER_CUDA80 0x10000002
93#define GLM_COMPILER_CUDA90 0x10000004
94#define GLM_COMPILER_CUDA_RTC 0x10000100
95
96// Clang
97#define GLM_COMPILER_CLANG 0x20000000
98#define GLM_COMPILER_CLANG34 0x20000050
99#define GLM_COMPILER_CLANG35 0x20000060
100#define GLM_COMPILER_CLANG36 0x20000070
101#define GLM_COMPILER_CLANG37 0x20000080
102#define GLM_COMPILER_CLANG38 0x20000090
103#define GLM_COMPILER_CLANG39 0x200000A0
104#define GLM_COMPILER_CLANG4 0x200000B0
105#define GLM_COMPILER_CLANG5 0x200000C0
106#define GLM_COMPILER_CLANG6 0x200000D0
107#define GLM_COMPILER_CLANG7 0x200000E0
108#define GLM_COMPILER_CLANG8 0x200000F0
109#define GLM_COMPILER_CLANG9 0x20000100
110#define GLM_COMPILER_CLANG10 0x20000200
111#define GLM_COMPILER_CLANG11 0x20000300
112#define GLM_COMPILER_CLANG12 0x20000400
113#define GLM_COMPILER_CLANG13 0x20000500
114#define GLM_COMPILER_CLANG14 0x20000600
115#define GLM_COMPILER_CLANG15 0x20000700
116#define GLM_COMPILER_CLANG16 0x20000800
117#define GLM_COMPILER_CLANG17 0x20000900
118#define GLM_COMPILER_CLANG18 0x20000A00
119#define GLM_COMPILER_CLANG19 0x20000B00
120
121// HIP
122#define GLM_COMPILER_HIP 0x40000000
123
124// Build model
125#define GLM_MODEL_32 0x00000010
126#define GLM_MODEL_64 0x00000020
127
128// Force generic C++ compiler
129#ifdef GLM_FORCE_COMPILER_UNKNOWN
130# define GLM_COMPILER GLM_COMPILER_UNKNOWN
131
132#elif defined(__INTEL_COMPILER)
133# if __INTEL_COMPILER >= 2021
134# define GLM_COMPILER GLM_COMPILER_INTEL21
135# elif __INTEL_COMPILER >= 1900
136# define GLM_COMPILER GLM_COMPILER_INTEL19
137# elif __INTEL_COMPILER >= 1800
138# define GLM_COMPILER GLM_COMPILER_INTEL18
139# elif __INTEL_COMPILER >= 1700
140# define GLM_COMPILER GLM_COMPILER_INTEL17
141# elif __INTEL_COMPILER >= 1600
142# define GLM_COMPILER GLM_COMPILER_INTEL16
143# elif __INTEL_COMPILER >= 1500
144# define GLM_COMPILER GLM_COMPILER_INTEL15
145# elif __INTEL_COMPILER >= 1400
146# define GLM_COMPILER GLM_COMPILER_INTEL14
147# elif __INTEL_COMPILER < 1400
148# error "GLM requires ICC 2013 SP1 or newer"
149# endif
150
151// CUDA
152#elif defined(__CUDACC__)
153# if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)
154# include <cuda.h> // make sure version is defined since nvcc does not define it itself!
155# endif
156# if defined(__CUDACC_RTC__)
157# define GLM_COMPILER GLM_COMPILER_CUDA_RTC
158# elif CUDA_VERSION >= 8000
159# define GLM_COMPILER GLM_COMPILER_CUDA80
160# elif CUDA_VERSION >= 7500
161# define GLM_COMPILER GLM_COMPILER_CUDA75
162# elif CUDA_VERSION >= 7000
163# define GLM_COMPILER GLM_COMPILER_CUDA70
164# elif CUDA_VERSION < 7000
165# error "GLM requires CUDA 7.0 or higher"
166# endif
167
168// HIP
169#elif defined(__HIP__)
170# define GLM_COMPILER GLM_COMPILER_HIP
171
172// Clang
173#elif defined(__clang__)
174# if defined(__apple_build_version__)
175# if (__clang_major__ < 6)
176# error "GLM requires Clang 3.4 / Apple Clang 6.0 or higher"
177# elif __clang_major__ == 6 && __clang_minor__ == 0
178# define GLM_COMPILER GLM_COMPILER_CLANG35
179# elif __clang_major__ == 6 && __clang_minor__ >= 1
180# define GLM_COMPILER GLM_COMPILER_CLANG36
181# elif __clang_major__ >= 7
182# define GLM_COMPILER GLM_COMPILER_CLANG37
183# endif
184# else
185# if ((__clang_major__ == 3) && (__clang_minor__ < 4)) || (__clang_major__ < 3)
186# error "GLM requires Clang 3.4 or higher"
187# elif __clang_major__ == 3 && __clang_minor__ == 4
188# define GLM_COMPILER GLM_COMPILER_CLANG34
189# elif __clang_major__ == 3 && __clang_minor__ == 5
190# define GLM_COMPILER GLM_COMPILER_CLANG35
191# elif __clang_major__ == 3 && __clang_minor__ == 6
192# define GLM_COMPILER GLM_COMPILER_CLANG36
193# elif __clang_major__ == 3 && __clang_minor__ == 7
194# define GLM_COMPILER GLM_COMPILER_CLANG37
195# elif __clang_major__ == 3 && __clang_minor__ == 8
196# define GLM_COMPILER GLM_COMPILER_CLANG38
197# elif __clang_major__ == 3 && __clang_minor__ >= 9
198# define GLM_COMPILER GLM_COMPILER_CLANG39
199# elif __clang_major__ == 4 && __clang_minor__ == 0
200# define GLM_COMPILER GLM_COMPILER_CLANG4
201# elif __clang_major__ == 5
202# define GLM_COMPILER GLM_COMPILER_CLANG5
203# elif __clang_major__ == 6
204# define GLM_COMPILER GLM_COMPILER_CLANG6
205# elif __clang_major__ == 7
206# define GLM_COMPILER GLM_COMPILER_CLANG7
207# elif __clang_major__ == 8
208# define GLM_COMPILER GLM_COMPILER_CLANG8
209# elif __clang_major__ == 9
210# define GLM_COMPILER GLM_COMPILER_CLANG9
211# elif __clang_major__ == 10
212# define GLM_COMPILER GLM_COMPILER_CLANG10
213# elif __clang_major__ == 11
214# define GLM_COMPILER GLM_COMPILER_CLANG11
215# elif __clang_major__ == 12
216# define GLM_COMPILER GLM_COMPILER_CLANG12
217# elif __clang_major__ == 13
218# define GLM_COMPILER GLM_COMPILER_CLANG13
219# elif __clang_major__ == 14
220# define GLM_COMPILER GLM_COMPILER_CLANG14
221# elif __clang_major__ == 15
222# define GLM_COMPILER GLM_COMPILER_CLANG15
223# elif __clang_major__ == 16
224# define GLM_COMPILER GLM_COMPILER_CLANG16
225# elif __clang_major__ == 17
226# define GLM_COMPILER GLM_COMPILER_CLANG17
227# elif __clang_major__ == 18
228# define GLM_COMPILER GLM_COMPILER_CLANG18
229# elif __clang_major__ >= 19
230# define GLM_COMPILER GLM_COMPILER_CLANG19
231# endif
232# endif
233
234// Visual C++
235#elif defined(_MSC_VER)
236# if _MSC_VER >= 1930
237# define GLM_COMPILER GLM_COMPILER_VC17
238# elif _MSC_VER >= 1920
239# define GLM_COMPILER GLM_COMPILER_VC16
240# elif _MSC_VER >= 1916
241# define GLM_COMPILER GLM_COMPILER_VC15_9
242# elif _MSC_VER >= 1915
243# define GLM_COMPILER GLM_COMPILER_VC15_8
244# elif _MSC_VER >= 1914
245# define GLM_COMPILER GLM_COMPILER_VC15_7
246# elif _MSC_VER >= 1913
247# define GLM_COMPILER GLM_COMPILER_VC15_6
248# elif _MSC_VER >= 1912
249# define GLM_COMPILER GLM_COMPILER_VC15_5
250# elif _MSC_VER >= 1911
251# define GLM_COMPILER GLM_COMPILER_VC15_3
252# elif _MSC_VER >= 1910
253# define GLM_COMPILER GLM_COMPILER_VC15
254# elif _MSC_VER >= 1900
255# define GLM_COMPILER GLM_COMPILER_VC14
256# elif _MSC_VER >= 1800
257# define GLM_COMPILER GLM_COMPILER_VC12
258# elif _MSC_VER < 1800
259# error "GLM requires Visual C++ 12 - 2013 or higher"
260# endif//_MSC_VER
261
262// G++
263#elif defined(__GNUC__) || defined(__MINGW32__)
264# if __GNUC__ >= 14
265# define GLM_COMPILER GLM_COMPILER_GCC14
266# elif __GNUC__ >= 13
267# define GLM_COMPILER GLM_COMPILER_GCC13
268# elif __GNUC__ >= 12
269# define GLM_COMPILER GLM_COMPILER_GCC12
270# elif __GNUC__ >= 11
271# define GLM_COMPILER GLM_COMPILER_GCC11
272# elif __GNUC__ >= 10
273# define GLM_COMPILER GLM_COMPILER_GCC10
274# elif __GNUC__ >= 9
275# define GLM_COMPILER GLM_COMPILER_GCC9
276# elif __GNUC__ >= 8
277# define GLM_COMPILER GLM_COMPILER_GCC8
278# elif __GNUC__ >= 7
279# define GLM_COMPILER GLM_COMPILER_GCC7
280# elif __GNUC__ >= 6
281# define GLM_COMPILER GLM_COMPILER_GCC6
282# elif __GNUC__ >= 5
283# define GLM_COMPILER GLM_COMPILER_GCC5
284# elif __GNUC__ == 4 && __GNUC_MINOR__ >= 9
285# define GLM_COMPILER GLM_COMPILER_GCC49
286# elif __GNUC__ == 4 && __GNUC_MINOR__ >= 8
287# define GLM_COMPILER GLM_COMPILER_GCC48
288# elif __GNUC__ == 4 && __GNUC_MINOR__ >= 7
289# define GLM_COMPILER GLM_COMPILER_GCC47
290# elif __GNUC__ == 4 && __GNUC_MINOR__ >= 6
291# define GLM_COMPILER GLM_COMPILER_GCC46
292# elif ((__GNUC__ == 4) && (__GNUC_MINOR__ < 6)) || (__GNUC__ < 4)
293# error "GLM requires GCC 4.6 or higher"
294# endif
295
296#else
297# define GLM_COMPILER GLM_COMPILER_UNKNOWN
298#endif
299
300#ifndef GLM_COMPILER
301# error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
302#endif//GLM_COMPILER
303
304///////////////////////////////////////////////////////////////////////////////////
305// Instruction sets
306
307// User defines: GLM_FORCE_PURE GLM_FORCE_INTRINSICS GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2 GLM_FORCE_AVX2
308
309#define GLM_ARCH_MIPS_BIT (0x10000000)
310#define GLM_ARCH_PPC_BIT (0x20000000)
311#define GLM_ARCH_ARM_BIT (0x40000000)
312#define GLM_ARCH_ARMV8_BIT (0x01000000)
313#define GLM_ARCH_X86_BIT (0x80000000)
314
315#define GLM_ARCH_SIMD_BIT (0x00001000)
316
317#define GLM_ARCH_NEON_BIT (0x00000001)
318#define GLM_ARCH_SSE_BIT (0x00000002)
319#define GLM_ARCH_SSE2_BIT (0x00000004)
320#define GLM_ARCH_SSE3_BIT (0x00000008)
321#define GLM_ARCH_SSSE3_BIT (0x00000010)
322#define GLM_ARCH_SSE41_BIT (0x00000020)
323#define GLM_ARCH_SSE42_BIT (0x00000040)
324#define GLM_ARCH_AVX_BIT (0x00000080)
325#define GLM_ARCH_AVX2_BIT (0x00000100)
326
327#define GLM_ARCH_UNKNOWN (0)
328#define GLM_ARCH_X86 (GLM_ARCH_X86_BIT)
329#define GLM_ARCH_SSE (GLM_ARCH_SSE_BIT | GLM_ARCH_SIMD_BIT | GLM_ARCH_X86)
330#define GLM_ARCH_SSE2 (GLM_ARCH_SSE2_BIT | GLM_ARCH_SSE)
331#define GLM_ARCH_SSE3 (GLM_ARCH_SSE3_BIT | GLM_ARCH_SSE2)
332#define GLM_ARCH_SSSE3 (GLM_ARCH_SSSE3_BIT | GLM_ARCH_SSE3)
333#define GLM_ARCH_SSE41 (GLM_ARCH_SSE41_BIT | GLM_ARCH_SSSE3)
334#define GLM_ARCH_SSE42 (GLM_ARCH_SSE42_BIT | GLM_ARCH_SSE41)
335#define GLM_ARCH_AVX (GLM_ARCH_AVX_BIT | GLM_ARCH_SSE42)
336#define GLM_ARCH_AVX2 (GLM_ARCH_AVX2_BIT | GLM_ARCH_AVX)
337#define GLM_ARCH_ARM (GLM_ARCH_ARM_BIT)
338#define GLM_ARCH_ARMV8 (GLM_ARCH_NEON_BIT | GLM_ARCH_SIMD_BIT | GLM_ARCH_ARM | GLM_ARCH_ARMV8_BIT)
339#define GLM_ARCH_NEON (GLM_ARCH_NEON_BIT | GLM_ARCH_SIMD_BIT | GLM_ARCH_ARM)
340#define GLM_ARCH_MIPS (GLM_ARCH_MIPS_BIT)
341#define GLM_ARCH_PPC (GLM_ARCH_PPC_BIT)
342
343#if defined(GLM_FORCE_ARCH_UNKNOWN) || defined(GLM_FORCE_PURE)
344# define GLM_ARCH GLM_ARCH_UNKNOWN
345#elif defined(GLM_FORCE_NEON)
346# if __ARM_ARCH >= 8
347# define GLM_ARCH (GLM_ARCH_ARMV8)
348# else
349# define GLM_ARCH (GLM_ARCH_NEON)
350# endif
351# define GLM_FORCE_INTRINSICS
352#elif defined(GLM_FORCE_AVX2)
353# define GLM_ARCH (GLM_ARCH_AVX2)
354# define GLM_FORCE_INTRINSICS
355#elif defined(GLM_FORCE_AVX)
356# define GLM_ARCH (GLM_ARCH_AVX)
357# define GLM_FORCE_INTRINSICS
358#elif defined(GLM_FORCE_SSE42)
359# define GLM_ARCH (GLM_ARCH_SSE42)
360# define GLM_FORCE_INTRINSICS
361#elif defined(GLM_FORCE_SSE41)
362# define GLM_ARCH (GLM_ARCH_SSE41)
363# define GLM_FORCE_INTRINSICS
364#elif defined(GLM_FORCE_SSSE3)
365# define GLM_ARCH (GLM_ARCH_SSSE3)
366# define GLM_FORCE_INTRINSICS
367#elif defined(GLM_FORCE_SSE3)
368# define GLM_ARCH (GLM_ARCH_SSE3)
369# define GLM_FORCE_INTRINSICS
370#elif defined(GLM_FORCE_SSE2)
371# define GLM_ARCH (GLM_ARCH_SSE2)
372# define GLM_FORCE_INTRINSICS
373#elif defined(GLM_FORCE_SSE)
374# define GLM_ARCH (GLM_ARCH_SSE)
375# define GLM_FORCE_INTRINSICS
376#elif defined(GLM_FORCE_INTRINSICS) && !defined(GLM_FORCE_XYZW_ONLY)
377# if defined(__AVX2__)
378# define GLM_ARCH (GLM_ARCH_AVX2)
379# elif defined(__AVX__)
380# define GLM_ARCH (GLM_ARCH_AVX)
381# elif defined(__SSE4_2__)
382# define GLM_ARCH (GLM_ARCH_SSE42)
383# elif defined(__SSE4_1__)
384# define GLM_ARCH (GLM_ARCH_SSE41)
385# elif defined(__SSSE3__)
386# define GLM_ARCH (GLM_ARCH_SSSE3)
387# elif defined(__SSE3__)
388# define GLM_ARCH (GLM_ARCH_SSE3)
389# elif defined(__SSE2__) || defined(__x86_64__) || defined(_M_X64) || defined(_M_IX86_FP)
390# define GLM_ARCH (GLM_ARCH_SSE2)
391# elif defined(__i386__)
392# define GLM_ARCH (GLM_ARCH_X86)
393# elif defined(__ARM_ARCH) && (__ARM_ARCH >= 8)
394# define GLM_ARCH (GLM_ARCH_ARMV8)
395# elif defined(__ARM_NEON)
396# define GLM_ARCH (GLM_ARCH_ARM | GLM_ARCH_NEON)
397# elif defined(__arm__ ) || defined(_M_ARM)
398# define GLM_ARCH (GLM_ARCH_ARM)
399# elif defined(__mips__ )
400# define GLM_ARCH (GLM_ARCH_MIPS)
401# elif defined(__powerpc__ ) || defined(_M_PPC)
402# define GLM_ARCH (GLM_ARCH_PPC)
403# else
404# define GLM_ARCH (GLM_ARCH_UNKNOWN)
405# endif
406#else
407# if defined(__x86_64__) || defined(_M_X64) || defined(_M_IX86) || defined(__i386__)
408# define GLM_ARCH (GLM_ARCH_X86)
409# elif defined(__arm__) || defined(_M_ARM)
410# define GLM_ARCH (GLM_ARCH_ARM)
411# elif defined(__powerpc__) || defined(_M_PPC)
412# define GLM_ARCH (GLM_ARCH_PPC)
413# elif defined(__mips__)
414# define GLM_ARCH (GLM_ARCH_MIPS)
415# else
416# define GLM_ARCH (GLM_ARCH_UNKNOWN)
417# endif
418#endif
419
420#if GLM_ARCH & GLM_ARCH_AVX2_BIT
421# include <immintrin.h>
422#elif GLM_ARCH & GLM_ARCH_AVX_BIT
423# include <immintrin.h>
424#elif GLM_ARCH & GLM_ARCH_SSE42_BIT
425# if GLM_COMPILER & GLM_COMPILER_CLANG
426# include <popcntintrin.h>
427# endif
428# include <nmmintrin.h>
429#elif GLM_ARCH & GLM_ARCH_SSE41_BIT
430# include <smmintrin.h>
431#elif GLM_ARCH & GLM_ARCH_SSSE3_BIT
432# include <tmmintrin.h>
433#elif GLM_ARCH & GLM_ARCH_SSE3_BIT
434# include <pmmintrin.h>
435#elif GLM_ARCH & GLM_ARCH_SSE2_BIT
436# include <emmintrin.h>
437#elif GLM_ARCH & GLM_ARCH_NEON_BIT
438# include "neon.h"
439#endif//GLM_ARCH
440
441#if GLM_ARCH & GLM_ARCH_SSE2_BIT
442 typedef __m128 glm_f32vec4;
443 typedef __m128i glm_i32vec4;
444 typedef __m128i glm_u32vec4;
445 typedef __m128d glm_f64vec2;
446 typedef __m128i glm_i64vec2;
447 typedef __m128i glm_u64vec2;
448
449 typedef glm_f32vec4 glm_vec4;
450 typedef glm_i32vec4 glm_ivec4;
451 typedef glm_u32vec4 glm_uvec4;
452 typedef glm_f64vec2 glm_dvec2;
453#endif
454
455#if GLM_ARCH & GLM_ARCH_AVX_BIT
456 typedef __m256d glm_f64vec4;
457 typedef glm_f64vec4 glm_dvec4;
458#endif
459
460#if GLM_ARCH & GLM_ARCH_AVX2_BIT
461 typedef __m256i glm_i64vec4;
462 typedef __m256i glm_u64vec4;
463#endif
464
465#if GLM_ARCH & GLM_ARCH_NEON_BIT
466 typedef float32x4_t glm_f32vec4;
467 typedef int32x4_t glm_i32vec4;
468 typedef uint32x4_t glm_u32vec4;
469#endif