Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #pragma once
00030
00031 #include "setup.hpp"
00032
00033 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
00034 # error "SSE2 instructions not supported or enabled"
00035 #else
00036
00037 #include "intrinsic_common.hpp"
00038
00039 namespace glm{
00040 namespace detail
00041 {
00042
00043 __m128 sse_len_ps(__m128 x);
00044
00045
00046 __m128 sse_dst_ps(__m128 p0, __m128 p1);
00047
00048
00049 __m128 sse_dot_ps(__m128 v1, __m128 v2);
00050
00051
00052 __m128 sse_dot_ss(__m128 v1, __m128 v2);
00053
00054
00055 __m128 sse_xpd_ps(__m128 v1, __m128 v2);
00056
00057
00058 __m128 sse_nrm_ps(__m128 v);
00059
00060
00061 __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
00062
00063
00064 __m128 sse_rfe_ps(__m128 I, __m128 N);
00065
00066
00067 __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
00068
00069 }
00070 }
00071
00072 #include "intrinsic_geometric.inl"
00073
00074 #endif//GLM_ARCH