xopintrin.h revision 251662
1251662Sdim/*===---- xopintrin.h - XOP intrinsics -------------------------------------=== 2239313Sdim * 3239313Sdim * Permission is hereby granted, free of charge, to any person obtaining a copy 4239313Sdim * of this software and associated documentation files (the "Software"), to deal 5239313Sdim * in the Software without restriction, including without limitation the rights 6239313Sdim * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7239313Sdim * copies of the Software, and to permit persons to whom the Software is 8239313Sdim * furnished to do so, subject to the following conditions: 9239313Sdim * 10239313Sdim * The above copyright notice and this permission notice shall be included in 11239313Sdim * all copies or substantial portions of the Software. 12239313Sdim * 13239313Sdim * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14239313Sdim * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15239313Sdim * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16239313Sdim * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17239313Sdim * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18239313Sdim * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19239313Sdim * THE SOFTWARE. 20239313Sdim * 21239313Sdim *===-----------------------------------------------------------------------=== 22239313Sdim */ 23239313Sdim 24239313Sdim#ifndef __X86INTRIN_H 25251662Sdim#error "Never use <xopintrin.h> directly; include <x86intrin.h> instead." 26239313Sdim#endif 27239313Sdim 28239313Sdim#ifndef __XOPINTRIN_H 29239313Sdim#define __XOPINTRIN_H 30239313Sdim 31239313Sdim#ifndef __XOP__ 32239313Sdim# error "XOP instruction set is not enabled" 33239313Sdim#else 34239313Sdim 35239313Sdim#include <fma4intrin.h> 36239313Sdim 37239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 38239313Sdim_mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C) 39239313Sdim{ 40239313Sdim return (__m128i)__builtin_ia32_vpmacssww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); 41239313Sdim} 42239313Sdim 43239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 44239313Sdim_mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C) 45239313Sdim{ 46239313Sdim return (__m128i)__builtin_ia32_vpmacsww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); 47239313Sdim} 48239313Sdim 49239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 50239313Sdim_mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C) 51239313Sdim{ 52239313Sdim return (__m128i)__builtin_ia32_vpmacsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); 53239313Sdim} 54239313Sdim 55239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 56239313Sdim_mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C) 57239313Sdim{ 58239313Sdim return (__m128i)__builtin_ia32_vpmacswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); 59239313Sdim} 60239313Sdim 61239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 62239313Sdim_mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C) 63239313Sdim{ 64239313Sdim return (__m128i)__builtin_ia32_vpmacssdd((__v4si)__A, (__v4si)__B, (__v4si)__C); 65239313Sdim} 66239313Sdim 67239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 68239313Sdim_mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C) 69239313Sdim{ 70239313Sdim return (__m128i)__builtin_ia32_vpmacsdd((__v4si)__A, (__v4si)__B, (__v4si)__C); 71239313Sdim} 72239313Sdim 73239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 74239313Sdim_mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C) 75239313Sdim{ 76239313Sdim return (__m128i)__builtin_ia32_vpmacssdql((__v4si)__A, (__v4si)__B, (__v2di)__C); 77239313Sdim} 78239313Sdim 79239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 80239313Sdim_mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C) 81239313Sdim{ 82239313Sdim return (__m128i)__builtin_ia32_vpmacsdql((__v4si)__A, (__v4si)__B, (__v2di)__C); 83239313Sdim} 84239313Sdim 85239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 86239313Sdim_mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C) 87239313Sdim{ 88239313Sdim return (__m128i)__builtin_ia32_vpmacssdqh((__v4si)__A, (__v4si)__B, (__v2di)__C); 89239313Sdim} 90239313Sdim 91239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 92239313Sdim_mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C) 93239313Sdim{ 94239313Sdim return (__m128i)__builtin_ia32_vpmacsdqh((__v4si)__A, (__v4si)__B, (__v2di)__C); 95239313Sdim} 96239313Sdim 97239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 98239313Sdim_mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C) 99239313Sdim{ 100239313Sdim return (__m128i)__builtin_ia32_vpmadcsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); 101239313Sdim} 102239313Sdim 103239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 104239313Sdim_mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C) 105239313Sdim{ 106239313Sdim return (__m128i)__builtin_ia32_vpmadcswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); 107239313Sdim} 108239313Sdim 109239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 110239313Sdim_mm_haddw_epi8(__m128i __A) 111239313Sdim{ 112239313Sdim return (__m128i)__builtin_ia32_vphaddbw((__v16qi)__A); 113239313Sdim} 114239313Sdim 115239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 116239313Sdim_mm_haddd_epi8(__m128i __A) 117239313Sdim{ 118239313Sdim return (__m128i)__builtin_ia32_vphaddbd((__v16qi)__A); 119239313Sdim} 120239313Sdim 121239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 122239313Sdim_mm_haddq_epi8(__m128i __A) 123239313Sdim{ 124239313Sdim return (__m128i)__builtin_ia32_vphaddbq((__v16qi)__A); 125239313Sdim} 126239313Sdim 127239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 128239313Sdim_mm_haddd_epi16(__m128i __A) 129239313Sdim{ 130239313Sdim return (__m128i)__builtin_ia32_vphaddwd((__v8hi)__A); 131239313Sdim} 132239313Sdim 133239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 134239313Sdim_mm_haddq_epi16(__m128i __A) 135239313Sdim{ 136239313Sdim return (__m128i)__builtin_ia32_vphaddwq((__v8hi)__A); 137239313Sdim} 138239313Sdim 139239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 140239313Sdim_mm_haddq_epi32(__m128i __A) 141239313Sdim{ 142239313Sdim return (__m128i)__builtin_ia32_vphadddq((__v4si)__A); 143239313Sdim} 144239313Sdim 145239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 146239313Sdim_mm_haddw_epu8(__m128i __A) 147239313Sdim{ 148239313Sdim return (__m128i)__builtin_ia32_vphaddubw((__v16qi)__A); 149239313Sdim} 150239313Sdim 151239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 152239313Sdim_mm_haddd_epu8(__m128i __A) 153239313Sdim{ 154239313Sdim return (__m128i)__builtin_ia32_vphaddubd((__v16qi)__A); 155239313Sdim} 156239313Sdim 157239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 158239313Sdim_mm_haddq_epu8(__m128i __A) 159239313Sdim{ 160239313Sdim return (__m128i)__builtin_ia32_vphaddubq((__v16qi)__A); 161239313Sdim} 162239313Sdim 163239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 164239313Sdim_mm_haddd_epu16(__m128i __A) 165239313Sdim{ 166239313Sdim return (__m128i)__builtin_ia32_vphadduwd((__v8hi)__A); 167239313Sdim} 168239313Sdim 169239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 170239313Sdim_mm_haddq_epu16(__m128i __A) 171239313Sdim{ 172239313Sdim return (__m128i)__builtin_ia32_vphadduwq((__v8hi)__A); 173239313Sdim} 174239313Sdim 175239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 176239313Sdim_mm_haddq_epu32(__m128i __A) 177239313Sdim{ 178239313Sdim return (__m128i)__builtin_ia32_vphaddudq((__v4si)__A); 179239313Sdim} 180239313Sdim 181239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 182239313Sdim_mm_hsubw_epi8(__m128i __A) 183239313Sdim{ 184239313Sdim return (__m128i)__builtin_ia32_vphsubbw((__v16qi)__A); 185239313Sdim} 186239313Sdim 187239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 188239313Sdim_mm_hsubd_epi16(__m128i __A) 189239313Sdim{ 190239313Sdim return (__m128i)__builtin_ia32_vphsubwd((__v8hi)__A); 191239313Sdim} 192239313Sdim 193239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 194239313Sdim_mm_hsubq_epi32(__m128i __A) 195239313Sdim{ 196239313Sdim return (__m128i)__builtin_ia32_vphsubdq((__v4si)__A); 197239313Sdim} 198239313Sdim 199239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 200239313Sdim_mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C) 201239313Sdim{ 202239313Sdim return (__m128i)__builtin_ia32_vpcmov(__A, __B, __C); 203239313Sdim} 204239313Sdim 205239313Sdimstatic __inline__ __m256i __attribute__((__always_inline__, __nodebug__)) 206239313Sdim_mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C) 207239313Sdim{ 208239313Sdim return (__m256i)__builtin_ia32_vpcmov_256(__A, __B, __C); 209239313Sdim} 210239313Sdim 211239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 212239313Sdim_mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C) 213239313Sdim{ 214239313Sdim return (__m128i)__builtin_ia32_vpperm((__v16qi)__A, (__v16qi)__B, (__v16qi)__C); 215239313Sdim} 216239313Sdim 217239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 218239313Sdim_mm_rot_epi8(__m128i __A, __m128i __B) 219239313Sdim{ 220239313Sdim return (__m128i)__builtin_ia32_vprotb((__v16qi)__A, (__v16qi)__B); 221239313Sdim} 222239313Sdim 223239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 224239313Sdim_mm_rot_epi16(__m128i __A, __m128i __B) 225239313Sdim{ 226239313Sdim return (__m128i)__builtin_ia32_vprotw((__v8hi)__A, (__v8hi)__B); 227239313Sdim} 228239313Sdim 229239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 230239313Sdim_mm_rot_epi32(__m128i __A, __m128i __B) 231239313Sdim{ 232239313Sdim return (__m128i)__builtin_ia32_vprotd((__v4si)__A, (__v4si)__B); 233239313Sdim} 234239313Sdim 235239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 236239313Sdim_mm_rot_epi64(__m128i __A, __m128i __B) 237239313Sdim{ 238239313Sdim return (__m128i)__builtin_ia32_vprotq((__v2di)__A, (__v2di)__B); 239239313Sdim} 240239313Sdim 241239313Sdim#define _mm_roti_epi8(A, N) __extension__ ({ \ 242239313Sdim __m128i __A = (A); \ 243239313Sdim (__m128i)__builtin_ia32_vprotbi((__v16qi)__A, (N)); }) 244239313Sdim 245239313Sdim#define _mm_roti_epi16(A, N) __extension__ ({ \ 246239313Sdim __m128i __A = (A); \ 247239313Sdim (__m128i)__builtin_ia32_vprotwi((__v8hi)__A, (N)); }) 248239313Sdim 249239313Sdim#define _mm_roti_epi32(A, N) __extension__ ({ \ 250239313Sdim __m128i __A = (A); \ 251239313Sdim (__m128i)__builtin_ia32_vprotdi((__v4si)__A, (N)); }) 252239313Sdim 253239313Sdim#define _mm_roti_epi64(A, N) __extension__ ({ \ 254239313Sdim __m128i __A = (A); \ 255239313Sdim (__m128i)__builtin_ia32_vprotqi((__v2di)__A, (N)); }) 256239313Sdim 257239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 258239313Sdim_mm_shl_epi8(__m128i __A, __m128i __B) 259239313Sdim{ 260239313Sdim return (__m128i)__builtin_ia32_vpshlb((__v16qi)__A, (__v16qi)__B); 261239313Sdim} 262239313Sdim 263239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 264239313Sdim_mm_shl_epi16(__m128i __A, __m128i __B) 265239313Sdim{ 266239313Sdim return (__m128i)__builtin_ia32_vpshlw((__v8hi)__A, (__v8hi)__B); 267239313Sdim} 268239313Sdim 269239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 270239313Sdim_mm_shl_epi32(__m128i __A, __m128i __B) 271239313Sdim{ 272239313Sdim return (__m128i)__builtin_ia32_vpshld((__v4si)__A, (__v4si)__B); 273239313Sdim} 274239313Sdim 275239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 276239313Sdim_mm_shl_epi64(__m128i __A, __m128i __B) 277239313Sdim{ 278239313Sdim return (__m128i)__builtin_ia32_vpshlq((__v2di)__A, (__v2di)__B); 279239313Sdim} 280239313Sdim 281239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 282239313Sdim_mm_sha_epi8(__m128i __A, __m128i __B) 283239313Sdim{ 284239313Sdim return (__m128i)__builtin_ia32_vpshab((__v16qi)__A, (__v16qi)__B); 285239313Sdim} 286239313Sdim 287239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 288239313Sdim_mm_sha_epi16(__m128i __A, __m128i __B) 289239313Sdim{ 290239313Sdim return (__m128i)__builtin_ia32_vpshaw((__v8hi)__A, (__v8hi)__B); 291239313Sdim} 292239313Sdim 293239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 294239313Sdim_mm_sha_epi32(__m128i __A, __m128i __B) 295239313Sdim{ 296239313Sdim return (__m128i)__builtin_ia32_vpshad((__v4si)__A, (__v4si)__B); 297239313Sdim} 298239313Sdim 299239313Sdimstatic __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 300239313Sdim_mm_sha_epi64(__m128i __A, __m128i __B) 301239313Sdim{ 302239313Sdim return (__m128i)__builtin_ia32_vpshaq((__v2di)__A, (__v2di)__B); 303239313Sdim} 304239313Sdim 305239313Sdim#define _mm_com_epu8(A, B, N) __extension__ ({ \ 306239313Sdim __m128i __A = (A); \ 307239313Sdim __m128i __B = (B); \ 308239313Sdim (__m128i)__builtin_ia32_vpcomub((__v16qi)__A, (__v16qi)__B, (N)); }) 309239313Sdim 310239313Sdim#define _mm_com_epu16(A, B, N) __extension__ ({ \ 311239313Sdim __m128i __A = (A); \ 312239313Sdim __m128i __B = (B); \ 313239313Sdim (__m128i)__builtin_ia32_vpcomuw((__v8hi)__A, (__v8hi)__B, (N)); }) 314239313Sdim 315239313Sdim#define _mm_com_epu32(A, B, N) __extension__ ({ \ 316239313Sdim __m128i __A = (A); \ 317239313Sdim __m128i __B = (B); \ 318239313Sdim (__m128i)__builtin_ia32_vpcomud((__v4si)__A, (__v4si)__B, (N)); }) 319239313Sdim 320239313Sdim#define _mm_com_epu64(A, B, N) __extension__ ({ \ 321239313Sdim __m128i __A = (A); \ 322239313Sdim __m128i __B = (B); \ 323239313Sdim (__m128i)__builtin_ia32_vpcomuq((__v2di)__A, (__v2di)__B, (N)); }) 324239313Sdim 325239313Sdim#define _mm_com_epi8(A, B, N) __extension__ ({ \ 326239313Sdim __m128i __A = (A); \ 327239313Sdim __m128i __B = (B); \ 328239313Sdim (__m128i)__builtin_ia32_vpcomb((__v16qi)__A, (__v16qi)__B, (N)); }) 329239313Sdim 330239313Sdim#define _mm_com_epi16(A, B, N) __extension__ ({ \ 331239313Sdim __m128i __A = (A); \ 332239313Sdim __m128i __B = (B); \ 333239313Sdim (__m128i)__builtin_ia32_vpcomw((__v8hi)__A, (__v8hi)__B, (N)); }) 334239313Sdim 335239313Sdim#define _mm_com_epi32(A, B, N) __extension__ ({ \ 336239313Sdim __m128i __A = (A); \ 337239313Sdim __m128i __B = (B); \ 338239313Sdim (__m128i)__builtin_ia32_vpcomd((__v4si)__A, (__v4si)__B, (N)); }) 339239313Sdim 340239313Sdim#define _mm_com_epi64(A, B, N) __extension__ ({ \ 341239313Sdim __m128i __A = (A); \ 342239313Sdim __m128i __B = (B); \ 343239313Sdim (__m128i)__builtin_ia32_vpcomq((__v2di)__A, (__v2di)__B, (N)); }) 344239313Sdim 345239313Sdim#define _mm_permute2_pd(X, Y, C, I) __extension__ ({ \ 346239313Sdim __m128d __X = (X); \ 347239313Sdim __m128d __Y = (Y); \ 348239313Sdim __m128i __C = (C); \ 349239313Sdim (__m128d)__builtin_ia32_vpermil2pd((__v2df)__X, (__v2df)__Y, \ 350239313Sdim (__v2di)__C, (I)); }) 351239313Sdim 352239313Sdim#define _mm256_permute2_pd(X, Y, C, I) __extension__ ({ \ 353239313Sdim __m256d __X = (X); \ 354239313Sdim __m256d __Y = (Y); \ 355239313Sdim __m256i __C = (C); \ 356239313Sdim (__m256d)__builtin_ia32_vpermil2pd256((__v4df)__X, (__v4df)__Y, \ 357239313Sdim (__v4di)__C, (I)); }) 358239313Sdim 359239313Sdim#define _mm_permute2_ps(X, Y, C, I) __extension__ ({ \ 360239313Sdim __m128 __X = (X); \ 361239313Sdim __m128 __Y = (Y); \ 362239313Sdim __m128i __C = (C); \ 363239313Sdim (__m128)__builtin_ia32_vpermil2ps((__v4sf)__X, (__v4sf)__Y, \ 364239313Sdim (__v4si)__C, (I)); }) 365239313Sdim 366239313Sdim#define _mm256_permute2_ps(X, Y, C, I) __extension__ ({ \ 367239313Sdim __m256 __X = (X); \ 368239313Sdim __m256 __Y = (Y); \ 369239313Sdim __m256i __C = (C); \ 370239313Sdim (__m256)__builtin_ia32_vpermil2ps256((__v8sf)__X, (__v8sf)__Y, \ 371239313Sdim (__v8si)__C, (I)); }) 372239313Sdim 373239313Sdimstatic __inline__ __m128 __attribute__((__always_inline__, __nodebug__)) 374239313Sdim_mm_frcz_ss(__m128 __A) 375239313Sdim{ 376239313Sdim return (__m128)__builtin_ia32_vfrczss((__v4sf)__A); 377239313Sdim} 378239313Sdim 379239313Sdimstatic __inline__ __m128d __attribute__((__always_inline__, __nodebug__)) 380239313Sdim_mm_frcz_sd(__m128d __A) 381239313Sdim{ 382239313Sdim return (__m128d)__builtin_ia32_vfrczsd((__v2df)__A); 383239313Sdim} 384239313Sdim 385239313Sdimstatic __inline__ __m128 __attribute__((__always_inline__, __nodebug__)) 386239313Sdim_mm_frcz_ps(__m128 __A) 387239313Sdim{ 388239313Sdim return (__m128)__builtin_ia32_vfrczps((__v4sf)__A); 389239313Sdim} 390239313Sdim 391239313Sdimstatic __inline__ __m128d __attribute__((__always_inline__, __nodebug__)) 392239313Sdim_mm_frcz_pd(__m128d __A) 393239313Sdim{ 394239313Sdim return (__m128d)__builtin_ia32_vfrczpd((__v2df)__A); 395239313Sdim} 396239313Sdim 397239313Sdimstatic __inline__ __m256 __attribute__((__always_inline__, __nodebug__)) 398239313Sdim_mm256_frcz_ps(__m256 __A) 399239313Sdim{ 400239313Sdim return (__m256)__builtin_ia32_vfrczps256((__v8sf)__A); 401239313Sdim} 402239313Sdim 403239313Sdimstatic __inline__ __m256d __attribute__((__always_inline__, __nodebug__)) 404239313Sdim_mm256_frcz_pd(__m256d __A) 405239313Sdim{ 406239313Sdim return (__m256d)__builtin_ia32_vfrczpd256((__v4df)__A); 407239313Sdim} 408239313Sdim 409239313Sdim#endif /* __XOP__ */ 410239313Sdim 411239313Sdim#endif /* __XOPINTRIN_H */ 412