16df3ef80SGreg Tucker /********************************************************************** 26df3ef80SGreg Tucker Copyright(c) 2011-2016 Intel Corporation All rights reserved. 36df3ef80SGreg Tucker 46df3ef80SGreg Tucker Redistribution and use in source and binary forms, with or without 56df3ef80SGreg Tucker modification, are permitted provided that the following conditions 66df3ef80SGreg Tucker are met: 76df3ef80SGreg Tucker * Redistributions of source code must retain the above copyright 86df3ef80SGreg Tucker notice, this list of conditions and the following disclaimer. 96df3ef80SGreg Tucker * Redistributions in binary form must reproduce the above copyright 106df3ef80SGreg Tucker notice, this list of conditions and the following disclaimer in 116df3ef80SGreg Tucker the documentation and/or other materials provided with the 126df3ef80SGreg Tucker distribution. 136df3ef80SGreg Tucker * Neither the name of Intel Corporation nor the names of its 146df3ef80SGreg Tucker contributors may be used to endorse or promote products derived 156df3ef80SGreg Tucker from this software without specific prior written permission. 166df3ef80SGreg Tucker 176df3ef80SGreg Tucker THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 186df3ef80SGreg Tucker "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 196df3ef80SGreg Tucker LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 206df3ef80SGreg Tucker A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 216df3ef80SGreg Tucker OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 226df3ef80SGreg Tucker SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 236df3ef80SGreg Tucker LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 246df3ef80SGreg Tucker DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 256df3ef80SGreg Tucker THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 266df3ef80SGreg Tucker (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 276df3ef80SGreg Tucker OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 286df3ef80SGreg Tucker **********************************************************************/ 296df3ef80SGreg Tucker 306df3ef80SGreg Tucker /** 316df3ef80SGreg Tucker * @file intrinreg.h 326df3ef80SGreg Tucker * @brief Defines intrinsic types used by the new hashing API 336df3ef80SGreg Tucker * 346df3ef80SGreg Tucker */ 356df3ef80SGreg Tucker 366df3ef80SGreg Tucker #ifndef _IA64_REGS_H_ 376df3ef80SGreg Tucker #define _IA64_REGS_H_ 386df3ef80SGreg Tucker 396df3ef80SGreg Tucker #ifdef __cplusplus 406df3ef80SGreg Tucker extern "C" { 416df3ef80SGreg Tucker #endif 426df3ef80SGreg Tucker 436df3ef80SGreg Tucker #ifdef _MSC_VER 446df3ef80SGreg Tucker #define inline __inline 456df3ef80SGreg Tucker #endif 466df3ef80SGreg Tucker 476df3ef80SGreg Tucker #include <stdint.h> 486df3ef80SGreg Tucker #include <immintrin.h> 496df3ef80SGreg Tucker 506df3ef80SGreg Tucker // Define available register types uniformly. 516df3ef80SGreg Tucker /// @cond 52*1de5344dSMarcel Cornu typedef struct { 53*1de5344dSMarcel Cornu uint8_t dummy; 54*1de5344dSMarcel Cornu } intrinreg1; 55*1de5344dSMarcel Cornu typedef struct { 56*1de5344dSMarcel Cornu uint16_t dummy; 57*1de5344dSMarcel Cornu } intrinreg2; 58*1de5344dSMarcel Cornu typedef struct { 59*1de5344dSMarcel Cornu uint32_t dummy; 60*1de5344dSMarcel Cornu } intrinreg4; 61*1de5344dSMarcel Cornu typedef struct { 62*1de5344dSMarcel Cornu uint64_t dummy; 63*1de5344dSMarcel Cornu } intrinreg8; 646df3ef80SGreg Tucker typedef __m128 intrinreg16; 656df3ef80SGreg Tucker /// @endcond 666df3ef80SGreg Tucker 676df3ef80SGreg Tucker #ifdef __cplusplus 686df3ef80SGreg Tucker } 696df3ef80SGreg Tucker #endif 706df3ef80SGreg Tucker 716df3ef80SGreg Tucker #endif // _IA64_REGS_H_ 72