1 /******************************************************************************* 2 * Copyright 2002-2018 Intel Corporation 3 * All Rights Reserved. 4 * 5 * If this software was obtained under the Intel Simplified Software License, 6 * the following terms apply: 7 * 8 * The source code, information and material ("Material") contained herein is 9 * owned by Intel Corporation or its suppliers or licensors, and title to such 10 * Material remains with Intel Corporation or its suppliers or licensors. The 11 * Material contains proprietary information of Intel or its suppliers and 12 * licensors. The Material is protected by worldwide copyright laws and treaty 13 * provisions. No part of the Material may be used, copied, reproduced, 14 * modified, published, uploaded, posted, transmitted, distributed or disclosed 15 * in any way without Intel's prior express written permission. No license under 16 * any patent, copyright or other intellectual property rights in the Material 17 * is granted to or conferred upon you, either expressly, by implication, 18 * inducement, estoppel or otherwise. Any license under such intellectual 19 * property rights must be express and approved by Intel in writing. 20 * 21 * Unless otherwise agreed by Intel in writing, you may not remove or alter this 22 * notice or any other notice embedded in Materials by Intel or Intel's 23 * suppliers or licensors in any way. 24 * 25 * 26 * If this software was obtained under the Apache License, Version 2.0 (the 27 * "License"), the following terms apply: 28 * 29 * You may not use this file except in compliance with the License. You may 30 * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 31 * 32 * 33 * Unless required by applicable law or agreed to in writing, software 34 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 35 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 36 * 37 * See the License for the specific language governing permissions and 38 * limitations under the License. 39 *******************************************************************************/ 40 41 /* 42 // Intel(R) Integrated Performance Primitives 43 // Cryptographic Primitives (ippcp) 44 // 45 */ 46 47 #include "owndefs.h" 48 #include "ippcpdefs.h" 49 #include "owncp.h" 50 #include "pcpver.h" 51 #include "pcpname.h" 52 53 #ifdef _IPP_OMP_STATIC 54 #define LIB_THREADS " threaded" 55 #else 56 #define LIB_THREADS "" 57 #endif 58 59 #define GET_LIBRARY_NAME( cpu, is ) #cpu, IPP_LIB_SHORTNAME() " " is " (" #cpu LIB_THREADS ")" 60 61 static const IppLibraryVersion ippcpLibVer = { 62 /* major, minor, update (ex-majorBuild) */ 63 BASE_VERSION(), 64 #if defined IPP_REVISION 65 IPP_REVISION, 66 #else 67 -1, 68 #endif /* IPP_REVISION */ 69 /* targetCpu[4] */ 70 #if ( _IPP_ARCH == _IPP_ARCH_IA32 ) || ( _IPP_ARCH == _IPP_ARCH_LP32 ) 71 #if ( _IPP == _IPP_M5 ) /* Intel(R) Quark(TM) processor - ia32 */ 72 GET_LIBRARY_NAME( m5, "586" ) 73 #elif ( _IPP == _IPP_H9 ) /* Intel(R) Advanced Vector Extensions 2 - ia32 */ 74 GET_LIBRARY_NAME( h9, "AVX2" ) 75 #elif ( _IPP == _IPP_G9 ) /* Intel(R) Advanced Vector Extensions - ia32 */ 76 GET_LIBRARY_NAME( g9, "AVX" ) 77 #elif ( _IPP == _IPP_P8 ) /* Intel(R) Streaming SIMD Extensions 4.2 - ia32 */ 78 GET_LIBRARY_NAME( p8, "SSE4.2" ) 79 #elif ( _IPP == _IPP_S8 ) /* Supplemental Streaming SIMD Extensions 3 + Intel(R) instruction MOVBE - ia32 */ 80 GET_LIBRARY_NAME( s8, "Atom" ) 81 #elif ( _IPP == _IPP_V8 ) /* Supplemental Streaming SIMD Extensions 3 - ia32 */ 82 GET_LIBRARY_NAME( v8, "SSSE3" ) 83 #elif ( _IPP == _IPP_W7 ) /* Intel(R) Streaming SIMD Extensions 2 - ia32 */ 84 GET_LIBRARY_NAME( w7, "SSE2" ) 85 #else 86 GET_LIBRARY_NAME( px, "PX" ) 87 #endif 88 89 #elif ( _IPP_ARCH == _IPP_ARCH_EM64T ) || ( _IPP_ARCH == _IPP_ARCH_LP64 ) 90 #if ( _IPP32E == _IPP32E_K0 ) /* Intel(R) Advanced Vector Extensions 512 (formerly Skylake) - intel64 */ 91 GET_LIBRARY_NAME( k0, "AVX-512F/CD/BW/DQ/VL" ) 92 #elif ( _IPP32E == _IPP32E_N0 ) /* Intel(R) Advanced Vector Extensions 512 (formerly codenamed Knights Landing) - intel64 */ 93 GET_LIBRARY_NAME( n0, "AVX-512F/CD/ER/PF" ) 94 #elif ( _IPP32E == _IPP32E_E9 ) /* Intel(R) Advanced Vector Extensions - intel64 */ 95 GET_LIBRARY_NAME( e9, "AVX" ) 96 #elif ( _IPP32E == _IPP32E_L9 ) /* Intel(R) Advanced Vector Extensions 2 - intel64 */ 97 GET_LIBRARY_NAME( l9, "AVX2" ) 98 #elif ( _IPP32E == _IPP32E_Y8 ) /* Intel(R) Streaming SIMD Extensions 4.2 - intel64 */ 99 GET_LIBRARY_NAME( y8, "SSE4.2" ) 100 #elif ( _IPP32E == _IPP32E_N8 ) /* Supplemental Streaming SIMD Extensions 3 + Intel(R) instruction MOVBE - intel64 */ 101 GET_LIBRARY_NAME( n8, "Atom" ) 102 #elif ( _IPP32E == _IPP32E_U8 ) /* Supplemental Streaming SIMD Extensions 3 - intel64 */ 103 GET_LIBRARY_NAME( u8, "SSSE3" ) 104 #elif ( _IPP32E == _IPP32E_M7 ) /* Intel(R) Streaming SIMD Extensions 3 - intel64 */ 105 GET_LIBRARY_NAME( m7, "SSE3" ) 106 #else 107 GET_LIBRARY_NAME( mx, "PX" ) 108 #endif 109 #endif 110 ,STR_VERSION() /* release Version */ 111 ,__DATE__ //BuildDate 112 }; 113 114 IPPFUN( const IppLibraryVersion*, ippcpGetLibVersion, ( void )){ 115 return &ippcpLibVer; 116 }; 117 118 /*////////////////////////// End of file "pcpver.c" ////////////////////////// */ 119