        -:    0:Source:/usr/lib/gcc/x86_64-linux-gnu/14/include/avxintrin.h
        -:    0:Graph:tspi4.gcno
        -:    0:Data:tspi4.gcda
        -:    0:Runs:1
        -:    1:/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
        -:    2:
        -:    3:   This file is part of GCC.
        -:    4:
        -:    5:   GCC is free software; you can redistribute it and/or modify
        -:    6:   it under the terms of the GNU General Public License as published by
        -:    7:   the Free Software Foundation; either version 3, or (at your option)
        -:    8:   any later version.
        -:    9:
        -:   10:   GCC is distributed in the hope that it will be useful,
        -:   11:   but WITHOUT ANY WARRANTY; without even the implied warranty of
        -:   12:   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        -:   13:   GNU General Public License for more details.
        -:   14:
        -:   15:   Under Section 7 of GPL version 3, you are granted additional
        -:   16:   permissions described in the GCC Runtime Library Exception, version
        -:   17:   3.1, as published by the Free Software Foundation.
        -:   18:
        -:   19:   You should have received a copy of the GNU General Public License and
        -:   20:   a copy of the GCC Runtime Library Exception along with this program;
        -:   21:   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        -:   22:   <http://www.gnu.org/licenses/>.  */
        -:   23:
        -:   24:/* Implemented from the specification included in the Intel C++ Compiler
        -:   25:   User Guide and Reference, version 11.0.  */
        -:   26:
        -:   27:#ifndef _IMMINTRIN_H_INCLUDED
        -:   28:# error "Never use <avxintrin.h> directly; include <immintrin.h> instead."
        -:   29:#endif
        -:   30:
        -:   31:#ifndef _AVXINTRIN_H_INCLUDED
        -:   32:#define _AVXINTRIN_H_INCLUDED
        -:   33:
        -:   34:#ifndef __AVX__
        -:   35:#pragma GCC push_options
        -:   36:#pragma GCC target("avx")
        -:   37:#define __DISABLE_AVX__
        -:   38:#endif /* __AVX__ */
        -:   39:
        -:   40:/* Internal data types for implementing the intrinsics.  */
        -:   41:typedef double __v4df __attribute__ ((__vector_size__ (32)));
        -:   42:typedef float __v8sf __attribute__ ((__vector_size__ (32)));
        -:   43:typedef long long __v4di __attribute__ ((__vector_size__ (32)));
        -:   44:typedef unsigned long long __v4du __attribute__ ((__vector_size__ (32)));
        -:   45:typedef int __v8si __attribute__ ((__vector_size__ (32)));
        -:   46:typedef unsigned int __v8su __attribute__ ((__vector_size__ (32)));
        -:   47:typedef short __v16hi __attribute__ ((__vector_size__ (32)));
        -:   48:typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32)));
        -:   49:typedef char __v32qi __attribute__ ((__vector_size__ (32)));
        -:   50:typedef signed char __v32qs __attribute__ ((__vector_size__ (32)));
        -:   51:typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32)));
        -:   52:
        -:   53:/* The Intel API is flexible enough that we must allow aliasing with other
        -:   54:   vector types, and their scalar components.  */
        -:   55:typedef float __m256 __attribute__ ((__vector_size__ (32),
        -:   56:				     __may_alias__));
        -:   57:typedef long long __m256i __attribute__ ((__vector_size__ (32),
        -:   58:					  __may_alias__));
        -:   59:typedef double __m256d __attribute__ ((__vector_size__ (32),
        -:   60:				       __may_alias__));
        -:   61:
        -:   62:/* Unaligned version of the same types.  */
        -:   63:typedef float __m256_u __attribute__ ((__vector_size__ (32),
        -:   64:				       __may_alias__,
        -:   65:				       __aligned__ (1)));
        -:   66:typedef long long __m256i_u __attribute__ ((__vector_size__ (32),
        -:   67:					    __may_alias__,
        -:   68:					    __aligned__ (1)));
        -:   69:typedef double __m256d_u __attribute__ ((__vector_size__ (32),
        -:   70:					 __may_alias__,
        -:   71:					 __aligned__ (1)));
        -:   72:
        -:   73:/* Compare predicates for scalar and packed compare intrinsics.  */
        -:   74:
        -:   75:/* Equal (ordered, non-signaling)  */
        -:   76:#define _CMP_EQ_OQ	0x00
        -:   77:/* Less-than (ordered, signaling)  */
        -:   78:#define _CMP_LT_OS	0x01
        -:   79:/* Less-than-or-equal (ordered, signaling)  */
        -:   80:#define _CMP_LE_OS	0x02
        -:   81:/* Unordered (non-signaling)  */
        -:   82:#define _CMP_UNORD_Q	0x03
        -:   83:/* Not-equal (unordered, non-signaling)  */
        -:   84:#define _CMP_NEQ_UQ	0x04
        -:   85:/* Not-less-than (unordered, signaling)  */
        -:   86:#define _CMP_NLT_US	0x05
        -:   87:/* Not-less-than-or-equal (unordered, signaling)  */
        -:   88:#define _CMP_NLE_US	0x06
        -:   89:/* Ordered (nonsignaling)   */
        -:   90:#define _CMP_ORD_Q	0x07
        -:   91:/* Equal (unordered, non-signaling)  */
        -:   92:#define _CMP_EQ_UQ	0x08
        -:   93:/* Not-greater-than-or-equal (unordered, signaling)  */
        -:   94:#define _CMP_NGE_US	0x09
        -:   95:/* Not-greater-than (unordered, signaling)  */
        -:   96:#define _CMP_NGT_US	0x0a
        -:   97:/* False (ordered, non-signaling)  */
        -:   98:#define _CMP_FALSE_OQ	0x0b
        -:   99:/* Not-equal (ordered, non-signaling)  */
        -:  100:#define _CMP_NEQ_OQ	0x0c
        -:  101:/* Greater-than-or-equal (ordered, signaling)  */
        -:  102:#define _CMP_GE_OS	0x0d
        -:  103:/* Greater-than (ordered, signaling)  */
        -:  104:#define _CMP_GT_OS	0x0e
        -:  105:/* True (unordered, non-signaling)  */
        -:  106:#define _CMP_TRUE_UQ	0x0f
        -:  107:/* Equal (ordered, signaling)  */
        -:  108:#define _CMP_EQ_OS	0x10
        -:  109:/* Less-than (ordered, non-signaling)  */
        -:  110:#define _CMP_LT_OQ	0x11
        -:  111:/* Less-than-or-equal (ordered, non-signaling)  */
        -:  112:#define _CMP_LE_OQ	0x12
        -:  113:/* Unordered (signaling)  */
        -:  114:#define _CMP_UNORD_S	0x13
        -:  115:/* Not-equal (unordered, signaling)  */
        -:  116:#define _CMP_NEQ_US	0x14
        -:  117:/* Not-less-than (unordered, non-signaling)  */
        -:  118:#define _CMP_NLT_UQ	0x15
        -:  119:/* Not-less-than-or-equal (unordered, non-signaling)  */
        -:  120:#define _CMP_NLE_UQ	0x16
        -:  121:/* Ordered (signaling)  */
        -:  122:#define _CMP_ORD_S	0x17
        -:  123:/* Equal (unordered, signaling)  */
        -:  124:#define _CMP_EQ_US	0x18
        -:  125:/* Not-greater-than-or-equal (unordered, non-signaling)  */
        -:  126:#define _CMP_NGE_UQ	0x19
        -:  127:/* Not-greater-than (unordered, non-signaling)  */
        -:  128:#define _CMP_NGT_UQ	0x1a
        -:  129:/* False (ordered, signaling)  */
        -:  130:#define _CMP_FALSE_OS	0x1b
        -:  131:/* Not-equal (ordered, signaling)  */
        -:  132:#define _CMP_NEQ_OS	0x1c
        -:  133:/* Greater-than-or-equal (ordered, non-signaling)  */
        -:  134:#define _CMP_GE_OQ	0x1d
        -:  135:/* Greater-than (ordered, non-signaling)  */
        -:  136:#define _CMP_GT_OQ	0x1e
        -:  137:/* True (unordered, signaling)  */
        -:  138:#define _CMP_TRUE_US	0x1f
        -:  139:
        -:  140:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  141:_mm256_add_pd (__m256d __A, __m256d __B)
        -:  142:{
 12512499:  143:  return (__m256d) ((__v4df)__A + (__v4df)__B);
        -:  144:}
        -:  145:
        -:  146:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  147:_mm256_add_ps (__m256 __A, __m256 __B)
        -:  148:{
        -:  149:  return (__m256) ((__v8sf)__A + (__v8sf)__B);
        -:  150:}
        -:  151:
        -:  152:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  153:_mm256_addsub_pd (__m256d __A, __m256d __B)
        -:  154:{
        -:  155:  return (__m256d) __builtin_ia32_addsubpd256 ((__v4df)__A, (__v4df)__B);
        -:  156:}
        -:  157:
        -:  158:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  159:_mm256_addsub_ps (__m256 __A, __m256 __B)
        -:  160:{
        -:  161:  return (__m256) __builtin_ia32_addsubps256 ((__v8sf)__A, (__v8sf)__B);
        -:  162:}
        -:  163:
        -:  164:
        -:  165:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  166:_mm256_and_pd (__m256d __A, __m256d __B)
        -:  167:{
        -:  168:  return (__m256d) __builtin_ia32_andpd256 ((__v4df)__A, (__v4df)__B);
        -:  169:}
        -:  170:
        -:  171:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  172:_mm256_and_ps (__m256 __A, __m256 __B)
        -:  173:{
        -:  174:  return (__m256) __builtin_ia32_andps256 ((__v8sf)__A, (__v8sf)__B);
        -:  175:}
        -:  176:
        -:  177:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  178:_mm256_andnot_pd (__m256d __A, __m256d __B)
        -:  179:{
        -:  180:  return (__m256d) __builtin_ia32_andnpd256 ((__v4df)__A, (__v4df)__B);
        -:  181:}
        -:  182:
        -:  183:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  184:_mm256_andnot_ps (__m256 __A, __m256 __B)
        -:  185:{
        -:  186:  return (__m256) __builtin_ia32_andnps256 ((__v8sf)__A, (__v8sf)__B);
        -:  187:}
        -:  188:
        -:  189:/* Double/single precision floating point blend instructions - select
        -:  190:   data from 2 sources using constant/variable mask.  */
        -:  191:
        -:  192:#ifdef __OPTIMIZE__
        -:  193:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  194:_mm256_blend_pd (__m256d __X, __m256d __Y, const int __M)
        -:  195:{
        -:  196:  return (__m256d) __builtin_ia32_blendpd256 ((__v4df)__X,
        -:  197:					      (__v4df)__Y,
        -:  198:					      __M);
        -:  199:}
        -:  200:
        -:  201:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  202:_mm256_blend_ps (__m256 __X, __m256 __Y, const int __M)
        -:  203:{
        -:  204:  return (__m256) __builtin_ia32_blendps256 ((__v8sf)__X,
        -:  205:					     (__v8sf)__Y,
        -:  206:					     __M);
        -:  207:}
        -:  208:#else
        -:  209:#define _mm256_blend_pd(X, Y, M)					\
        -:  210:  ((__m256d) __builtin_ia32_blendpd256 ((__v4df)(__m256d)(X),		\
        -:  211:					(__v4df)(__m256d)(Y), (int)(M)))
        -:  212:
        -:  213:#define _mm256_blend_ps(X, Y, M)					\
        -:  214:  ((__m256) __builtin_ia32_blendps256 ((__v8sf)(__m256)(X),		\
        -:  215:				       (__v8sf)(__m256)(Y), (int)(M)))
        -:  216:#endif
        -:  217:
        -:  218:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  219:_mm256_blendv_pd (__m256d __X, __m256d __Y, __m256d __M)
        -:  220:{
        -:  221:  return (__m256d) __builtin_ia32_blendvpd256 ((__v4df)__X,
        -:  222:					       (__v4df)__Y,
        -:  223:					       (__v4df)__M);
        -:  224:}
        -:  225:
        -:  226:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  227:_mm256_blendv_ps (__m256 __X, __m256 __Y, __m256 __M)
        -:  228:{
        -:  229:  return (__m256) __builtin_ia32_blendvps256 ((__v8sf)__X,
        -:  230:					      (__v8sf)__Y,
        -:  231:					      (__v8sf)__M);
        -:  232:}
        -:  233:
        -:  234:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  235:_mm256_div_pd (__m256d __A, __m256d __B)
        -:  236:{
        -:  237:  return (__m256d) ((__v4df)__A / (__v4df)__B);
        -:  238:}
        -:  239:
        -:  240:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  241:_mm256_div_ps (__m256 __A, __m256 __B)
        -:  242:{
        -:  243:  return (__m256) ((__v8sf)__A / (__v8sf)__B);
        -:  244:}
        -:  245:
        -:  246:/* Dot product instructions with mask-defined summing and zeroing parts
        -:  247:   of result.  */
        -:  248:
        -:  249:#ifdef __OPTIMIZE__
        -:  250:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  251:_mm256_dp_ps (__m256 __X, __m256 __Y, const int __M)
        -:  252:{
        -:  253:  return (__m256) __builtin_ia32_dpps256 ((__v8sf)__X,
        -:  254:					  (__v8sf)__Y,
        -:  255:					  __M);
        -:  256:}
        -:  257:#else
        -:  258:#define _mm256_dp_ps(X, Y, M)						\
        -:  259:  ((__m256) __builtin_ia32_dpps256 ((__v8sf)(__m256)(X),		\
        -:  260:				    (__v8sf)(__m256)(Y), (int)(M)))
        -:  261:#endif
        -:  262:
        -:  263:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  264:_mm256_hadd_pd (__m256d __X, __m256d __Y)
        -:  265:{
        -:  266:  return (__m256d) __builtin_ia32_haddpd256 ((__v4df)__X, (__v4df)__Y);
        -:  267:}
        -:  268:
        -:  269:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  270:_mm256_hadd_ps (__m256 __X, __m256 __Y)
        -:  271:{
        -:  272:  return (__m256) __builtin_ia32_haddps256 ((__v8sf)__X, (__v8sf)__Y);
        -:  273:}
        -:  274:
        -:  275:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  276:_mm256_hsub_pd (__m256d __X, __m256d __Y)
        -:  277:{
        -:  278:  return (__m256d) __builtin_ia32_hsubpd256 ((__v4df)__X, (__v4df)__Y);
        -:  279:}
        -:  280:
        -:  281:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  282:_mm256_hsub_ps (__m256 __X, __m256 __Y)
        -:  283:{
        -:  284:  return (__m256) __builtin_ia32_hsubps256 ((__v8sf)__X, (__v8sf)__Y);
        -:  285:}
        -:  286:
        -:  287:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  288:_mm256_max_pd (__m256d __A, __m256d __B)
        -:  289:{
        -:  290:  return (__m256d) __builtin_ia32_maxpd256 ((__v4df)__A, (__v4df)__B);
        -:  291:}
        -:  292:
        -:  293:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  294:_mm256_max_ps (__m256 __A, __m256 __B)
        -:  295:{
        -:  296:  return (__m256) __builtin_ia32_maxps256 ((__v8sf)__A, (__v8sf)__B);
        -:  297:}
        -:  298:
        -:  299:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  300:_mm256_min_pd (__m256d __A, __m256d __B)
        -:  301:{
        -:  302:  return (__m256d) __builtin_ia32_minpd256 ((__v4df)__A, (__v4df)__B);
        -:  303:}
        -:  304:
        -:  305:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  306:_mm256_min_ps (__m256 __A, __m256 __B)
        -:  307:{
        -:  308:  return (__m256) __builtin_ia32_minps256 ((__v8sf)__A, (__v8sf)__B);
        -:  309:}
        -:  310:
        -:  311:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  312:_mm256_mul_pd (__m256d __A, __m256d __B)
        -:  313:{
 12512499:  314:  return (__m256d) ((__v4df)__A * (__v4df)__B);
        -:  315:}
        -:  316:
        -:  317:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  318:_mm256_mul_ps (__m256 __A, __m256 __B)
        -:  319:{
        -:  320:  return (__m256) ((__v8sf)__A * (__v8sf)__B);
        -:  321:}
        -:  322:
        -:  323:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  324:_mm256_or_pd (__m256d __A, __m256d __B)
        -:  325:{
        -:  326:  return (__m256d) __builtin_ia32_orpd256 ((__v4df)__A, (__v4df)__B);
        -:  327:}
        -:  328:
        -:  329:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  330:_mm256_or_ps (__m256 __A, __m256 __B)
        -:  331:{
        -:  332:  return (__m256) __builtin_ia32_orps256 ((__v8sf)__A, (__v8sf)__B);
        -:  333:}
        -:  334:
        -:  335:#ifdef __OPTIMIZE__
        -:  336:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  337:_mm256_shuffle_pd (__m256d __A, __m256d __B, const int __mask)
        -:  338:{
        -:  339:  return (__m256d) __builtin_ia32_shufpd256 ((__v4df)__A, (__v4df)__B,
        -:  340:					     __mask);
        -:  341:}
        -:  342:
        -:  343:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  344:_mm256_shuffle_ps (__m256 __A, __m256 __B, const int __mask)
        -:  345:{
        -:  346:  return (__m256) __builtin_ia32_shufps256 ((__v8sf)__A, (__v8sf)__B,
        -:  347:					    __mask);
        -:  348:}
        -:  349:#else
        -:  350:#define _mm256_shuffle_pd(A, B, N)					\
        -:  351:  ((__m256d)__builtin_ia32_shufpd256 ((__v4df)(__m256d)(A),		\
        -:  352:				      (__v4df)(__m256d)(B), (int)(N)))
        -:  353:
        -:  354:#define _mm256_shuffle_ps(A, B, N)					\
        -:  355:  ((__m256) __builtin_ia32_shufps256 ((__v8sf)(__m256)(A),		\
        -:  356:				      (__v8sf)(__m256)(B), (int)(N)))
        -:  357:#endif
        -:  358:
        -:  359:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  360:_mm256_sub_pd (__m256d __A, __m256d __B)
        -:  361:{
 12512499:  362:  return (__m256d) ((__v4df)__A - (__v4df)__B);
        -:  363:}
        -:  364:
        -:  365:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  366:_mm256_sub_ps (__m256 __A, __m256 __B)
        -:  367:{
        -:  368:  return (__m256) ((__v8sf)__A - (__v8sf)__B);
        -:  369:}
        -:  370:
        -:  371:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  372:_mm256_xor_pd (__m256d __A, __m256d __B)
        -:  373:{
        -:  374:  return (__m256d) __builtin_ia32_xorpd256 ((__v4df)__A, (__v4df)__B);
        -:  375:}
        -:  376:
        -:  377:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  378:_mm256_xor_ps (__m256 __A, __m256 __B)
        -:  379:{
        -:  380:  return (__m256) __builtin_ia32_xorps256 ((__v8sf)__A, (__v8sf)__B);
        -:  381:}
        -:  382:
        -:  383:#ifdef __OPTIMIZE__
        -:  384:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  385:_mm_cmp_pd (__m128d __X, __m128d __Y, const int __P)
        -:  386:{
        -:  387:  return (__m128d) __builtin_ia32_cmppd ((__v2df)__X, (__v2df)__Y, __P);
        -:  388:}
        -:  389:
        -:  390:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  391:_mm_cmp_ps (__m128 __X, __m128 __Y, const int __P)
        -:  392:{
        -:  393:  return (__m128) __builtin_ia32_cmpps ((__v4sf)__X, (__v4sf)__Y, __P);
        -:  394:}
        -:  395:
        -:  396:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  397:_mm256_cmp_pd (__m256d __X, __m256d __Y, const int __P)
        -:  398:{
 12592607:  399:  return (__m256d) __builtin_ia32_cmppd256 ((__v4df)__X, (__v4df)__Y,
        -:  400:					    __P);
        -:  401:}
        -:  402:
        -:  403:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  404:_mm256_cmp_ps (__m256 __X, __m256 __Y, const int __P)
        -:  405:{
        -:  406:  return (__m256) __builtin_ia32_cmpps256 ((__v8sf)__X, (__v8sf)__Y,
        -:  407:					   __P);
        -:  408:}
        -:  409:
        -:  410:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  411:_mm_cmp_sd (__m128d __X, __m128d __Y, const int __P)
        -:  412:{
        -:  413:  return (__m128d) __builtin_ia32_cmpsd ((__v2df)__X, (__v2df)__Y, __P);
        -:  414:}
        -:  415:
        -:  416:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  417:_mm_cmp_ss (__m128 __X, __m128 __Y, const int __P)
        -:  418:{
        -:  419:  return (__m128) __builtin_ia32_cmpss ((__v4sf)__X, (__v4sf)__Y, __P);
        -:  420:}
        -:  421:#else
        -:  422:#define _mm_cmp_pd(X, Y, P)						\
        -:  423:  ((__m128d) __builtin_ia32_cmppd ((__v2df)(__m128d)(X),		\
        -:  424:				   (__v2df)(__m128d)(Y), (int)(P)))
        -:  425:
        -:  426:#define _mm_cmp_ps(X, Y, P)						\
        -:  427:  ((__m128) __builtin_ia32_cmpps ((__v4sf)(__m128)(X),			\
        -:  428:				  (__v4sf)(__m128)(Y), (int)(P)))
        -:  429:
        -:  430:#define _mm256_cmp_pd(X, Y, P)						\
        -:  431:  ((__m256d) __builtin_ia32_cmppd256 ((__v4df)(__m256d)(X),		\
        -:  432:				      (__v4df)(__m256d)(Y), (int)(P)))
        -:  433:
        -:  434:#define _mm256_cmp_ps(X, Y, P)						\
        -:  435:  ((__m256) __builtin_ia32_cmpps256 ((__v8sf)(__m256)(X),		\
        -:  436:				     (__v8sf)(__m256)(Y), (int)(P)))
        -:  437:
        -:  438:#define _mm_cmp_sd(X, Y, P)						\
        -:  439:  ((__m128d) __builtin_ia32_cmpsd ((__v2df)(__m128d)(X),		\
        -:  440:				   (__v2df)(__m128d)(Y), (int)(P)))
        -:  441:
        -:  442:#define _mm_cmp_ss(X, Y, P)						\
        -:  443:  ((__m128) __builtin_ia32_cmpss ((__v4sf)(__m128)(X),			\
        -:  444:				  (__v4sf)(__m128)(Y), (int)(P)))
        -:  445:#endif
        -:  446:
        -:  447:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  448:_mm256_cvtsi256_si32 (__m256i __A)
        -:  449:{
        -:  450:  __v8si __B = (__v8si) __A;
        -:  451:  return __B[0];
        -:  452:}
        -:  453:
        -:  454:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  455:_mm256_cvtepi32_pd (__m128i __A)
        -:  456:{
        -:  457:  return (__m256d)__builtin_ia32_cvtdq2pd256 ((__v4si) __A);
        -:  458:}
        -:  459:
        -:  460:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  461:_mm256_cvtepi32_ps (__m256i __A)
        -:  462:{
        -:  463:  return (__m256)__builtin_ia32_cvtdq2ps256 ((__v8si) __A);
        -:  464:}
        -:  465:
        -:  466:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  467:_mm256_cvtpd_ps (__m256d __A)
        -:  468:{
        -:  469:  return (__m128)__builtin_ia32_cvtpd2ps256 ((__v4df) __A);
        -:  470:}
        -:  471:
        -:  472:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  473:_mm256_cvtps_epi32 (__m256 __A)
        -:  474:{
        -:  475:  return (__m256i)__builtin_ia32_cvtps2dq256 ((__v8sf) __A);
        -:  476:}
        -:  477:
        -:  478:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  479:_mm256_cvtps_pd (__m128 __A)
        -:  480:{
        -:  481:  return (__m256d)__builtin_ia32_cvtps2pd256 ((__v4sf) __A);
        -:  482:}
        -:  483:
        -:  484:extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  485:_mm256_cvttpd_epi32 (__m256d __A)
        -:  486:{
        -:  487:  return (__m128i)__builtin_ia32_cvttpd2dq256 ((__v4df) __A);
        -:  488:}
        -:  489:
        -:  490:extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  491:_mm256_cvtpd_epi32 (__m256d __A)
        -:  492:{
        -:  493:  return (__m128i)__builtin_ia32_cvtpd2dq256 ((__v4df) __A);
        -:  494:}
        -:  495:
        -:  496:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  497:_mm256_cvttps_epi32 (__m256 __A)
        -:  498:{
        -:  499:  return (__m256i)__builtin_ia32_cvttps2dq256 ((__v8sf) __A);
        -:  500:}
        -:  501:
        -:  502:extern __inline double
        -:  503:__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
        -:  504:_mm256_cvtsd_f64 (__m256d __A)
        -:  505:{
        -:  506:  return __A[0];
        -:  507:}
        -:  508:
        -:  509:extern __inline float
        -:  510:__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
        -:  511:_mm256_cvtss_f32 (__m256 __A)
        -:  512:{
        -:  513:  return __A[0];
        -:  514:}
        -:  515:
        -:  516:#ifdef __OPTIMIZE__
        -:  517:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  518:_mm256_extractf128_pd (__m256d __X, const int __N)
        -:  519:{
        -:  520:  return (__m128d) __builtin_ia32_vextractf128_pd256 ((__v4df)__X, __N);
        -:  521:}
        -:  522:
        -:  523:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  524:_mm256_extractf128_ps (__m256 __X, const int __N)
        -:  525:{
        -:  526:  return (__m128) __builtin_ia32_vextractf128_ps256 ((__v8sf)__X, __N);
        -:  527:}
        -:  528:
        -:  529:extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  530:_mm256_extractf128_si256 (__m256i __X, const int __N)
        -:  531:{
        -:  532:  return (__m128i) __builtin_ia32_vextractf128_si256 ((__v8si)__X, __N);
        -:  533:}
        -:  534:
        -:  535:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  536:_mm256_extract_epi32 (__m256i __X, int const __N)
        -:  537:{
        -:  538:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 2);
        -:  539:  return _mm_extract_epi32 (__Y, __N % 4);
        -:  540:}
        -:  541:
        -:  542:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  543:_mm256_extract_epi16 (__m256i __X, int const __N)
        -:  544:{
        -:  545:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 3);
        -:  546:  return _mm_extract_epi16 (__Y, __N % 8);
        -:  547:}
        -:  548:
        -:  549:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  550:_mm256_extract_epi8 (__m256i __X, int const __N)
        -:  551:{
        -:  552:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 4);
        -:  553:  return _mm_extract_epi8 (__Y, __N % 16);
        -:  554:}
        -:  555:
        -:  556:#ifdef __x86_64__
        -:  557:extern __inline long long  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  558:_mm256_extract_epi64 (__m256i __X, const int __N)
        -:  559:{
        -:  560:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
        -:  561:  return _mm_extract_epi64 (__Y, __N % 2);
        -:  562:}
        -:  563:#endif
        -:  564:#else
        -:  565:#define _mm256_extractf128_pd(X, N)					\
        -:  566:  ((__m128d) __builtin_ia32_vextractf128_pd256 ((__v4df)(__m256d)(X),	\
        -:  567:						(int)(N)))
        -:  568:
        -:  569:#define _mm256_extractf128_ps(X, N)					\
        -:  570:  ((__m128) __builtin_ia32_vextractf128_ps256 ((__v8sf)(__m256)(X),	\
        -:  571:					       (int)(N)))
        -:  572:
        -:  573:#define _mm256_extractf128_si256(X, N)					\
        -:  574:  ((__m128i) __builtin_ia32_vextractf128_si256 ((__v8si)(__m256i)(X),	\
        -:  575:						(int)(N)))
        -:  576:
        -:  577:#define _mm256_extract_epi32(X, N)					\
        -:  578:  (__extension__							\
        -:  579:   ({									\
        -:  580:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 2);		\
        -:  581:      _mm_extract_epi32 (__Y, (N) % 4);					\
        -:  582:    }))
        -:  583:
        -:  584:#define _mm256_extract_epi16(X, N)					\
        -:  585:  (__extension__							\
        -:  586:   ({									\
        -:  587:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 3);		\
        -:  588:      _mm_extract_epi16 (__Y, (N) % 8);					\
        -:  589:    }))
        -:  590:
        -:  591:#define _mm256_extract_epi8(X, N)					\
        -:  592:  (__extension__							\
        -:  593:   ({									\
        -:  594:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 4);		\
        -:  595:      _mm_extract_epi8 (__Y, (N) % 16);					\
        -:  596:    }))
        -:  597:
        -:  598:#ifdef __x86_64__
        -:  599:#define _mm256_extract_epi64(X, N)					\
        -:  600:  (__extension__							\
        -:  601:   ({									\
        -:  602:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 1);		\
        -:  603:      _mm_extract_epi64 (__Y, (N) % 2);					\
        -:  604:    }))
        -:  605:#endif
        -:  606:#endif
        -:  607:
        -:  608:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  609:_mm256_zeroall (void)
        -:  610:{
        -:  611:  __builtin_ia32_vzeroall ();
        -:  612:}
        -:  613:
        -:  614:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  615:_mm256_zeroupper (void)
        -:  616:{
        -:  617:  __builtin_ia32_vzeroupper ();
        -:  618:}
        -:  619:
        -:  620:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  621:_mm_permutevar_pd (__m128d __A, __m128i __C)
        -:  622:{
        -:  623:  return (__m128d) __builtin_ia32_vpermilvarpd ((__v2df)__A,
        -:  624:						(__v2di)__C);
        -:  625:}
        -:  626:
        -:  627:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  628:_mm256_permutevar_pd (__m256d __A, __m256i __C)
        -:  629:{
        -:  630:  return (__m256d) __builtin_ia32_vpermilvarpd256 ((__v4df)__A,
        -:  631:						   (__v4di)__C);
        -:  632:}
        -:  633:
        -:  634:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  635:_mm_permutevar_ps (__m128 __A, __m128i __C)
        -:  636:{
        -:  637:  return (__m128) __builtin_ia32_vpermilvarps ((__v4sf)__A,
        -:  638:					       (__v4si)__C);
        -:  639:}
        -:  640:
        -:  641:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  642:_mm256_permutevar_ps (__m256 __A, __m256i __C)
        -:  643:{
        -:  644:  return (__m256) __builtin_ia32_vpermilvarps256 ((__v8sf)__A,
        -:  645:						  (__v8si)__C);
        -:  646:}
        -:  647:
        -:  648:#ifdef __OPTIMIZE__
        -:  649:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  650:_mm_permute_pd (__m128d __X, const int __C)
        -:  651:{
        -:  652:  return (__m128d) __builtin_ia32_vpermilpd ((__v2df)__X, __C);
        -:  653:}
        -:  654:
        -:  655:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  656:_mm256_permute_pd (__m256d __X, const int __C)
        -:  657:{
        -:  658:  return (__m256d) __builtin_ia32_vpermilpd256 ((__v4df)__X, __C);
        -:  659:}
        -:  660:
        -:  661:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  662:_mm_permute_ps (__m128 __X, const int __C)
        -:  663:{
        -:  664:  return (__m128) __builtin_ia32_vpermilps ((__v4sf)__X, __C);
        -:  665:}
        -:  666:
        -:  667:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  668:_mm256_permute_ps (__m256 __X, const int __C)
        -:  669:{
        -:  670:  return (__m256) __builtin_ia32_vpermilps256 ((__v8sf)__X, __C);
        -:  671:}
        -:  672:#else
        -:  673:#define _mm_permute_pd(X, C)						\
        -:  674:  ((__m128d) __builtin_ia32_vpermilpd ((__v2df)(__m128d)(X), (int)(C)))
        -:  675:
        -:  676:#define _mm256_permute_pd(X, C)						\
        -:  677:  ((__m256d) __builtin_ia32_vpermilpd256 ((__v4df)(__m256d)(X),	(int)(C)))
        -:  678:
        -:  679:#define _mm_permute_ps(X, C)						\
        -:  680:  ((__m128) __builtin_ia32_vpermilps ((__v4sf)(__m128)(X), (int)(C)))
        -:  681:
        -:  682:#define _mm256_permute_ps(X, C)						\
        -:  683:  ((__m256) __builtin_ia32_vpermilps256 ((__v8sf)(__m256)(X), (int)(C)))
        -:  684:#endif
        -:  685:
        -:  686:#ifdef __OPTIMIZE__
        -:  687:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  688:_mm256_permute2f128_pd (__m256d __X, __m256d __Y, const int __C)
        -:  689:{
        -:  690:  return (__m256d) __builtin_ia32_vperm2f128_pd256 ((__v4df)__X,
        -:  691:						    (__v4df)__Y,
        -:  692:						    __C);
        -:  693:}
        -:  694:
        -:  695:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  696:_mm256_permute2f128_ps (__m256 __X, __m256 __Y, const int __C)
        -:  697:{
        -:  698:  return (__m256) __builtin_ia32_vperm2f128_ps256 ((__v8sf)__X,
        -:  699:						   (__v8sf)__Y,
        -:  700:						   __C);
        -:  701:}
        -:  702:
        -:  703:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  704:_mm256_permute2f128_si256 (__m256i __X, __m256i __Y, const int __C)
        -:  705:{
        -:  706:  return (__m256i) __builtin_ia32_vperm2f128_si256 ((__v8si)__X,
        -:  707:						    (__v8si)__Y,
        -:  708:						    __C);
        -:  709:}
        -:  710:#else
        -:  711:#define _mm256_permute2f128_pd(X, Y, C)					\
        -:  712:  ((__m256d) __builtin_ia32_vperm2f128_pd256 ((__v4df)(__m256d)(X),	\
        -:  713:					      (__v4df)(__m256d)(Y),	\
        -:  714:					      (int)(C)))
        -:  715:
        -:  716:#define _mm256_permute2f128_ps(X, Y, C)					\
        -:  717:  ((__m256) __builtin_ia32_vperm2f128_ps256 ((__v8sf)(__m256)(X),	\
        -:  718:					     (__v8sf)(__m256)(Y),	\
        -:  719:					     (int)(C)))
        -:  720:
        -:  721:#define _mm256_permute2f128_si256(X, Y, C)				\
        -:  722:  ((__m256i) __builtin_ia32_vperm2f128_si256 ((__v8si)(__m256i)(X),	\
        -:  723:					      (__v8si)(__m256i)(Y),	\
        -:  724:					      (int)(C)))
        -:  725:#endif
        -:  726:
        -:  727:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  728:_mm_broadcast_ss (float const *__X)
        -:  729:{
        -:  730:  return (__m128) __builtin_ia32_vbroadcastss (__X);
        -:  731:}
        -:  732:
        -:  733:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  734:_mm256_broadcast_sd (double const *__X)
        -:  735:{
   105107:  736:  return (__m256d) __builtin_ia32_vbroadcastsd256 (__X);
        -:  737:}
        -:  738:
        -:  739:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  740:_mm256_broadcast_ss (float const *__X)
        -:  741:{
        -:  742:  return (__m256) __builtin_ia32_vbroadcastss256 (__X);
        -:  743:}
        -:  744:
        -:  745:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  746:_mm256_broadcast_pd (__m128d const *__X)
        -:  747:{
        -:  748:  return (__m256d) __builtin_ia32_vbroadcastf128_pd256 (__X);
        -:  749:}
        -:  750:
        -:  751:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  752:_mm256_broadcast_ps (__m128 const *__X)
        -:  753:{
        -:  754:  return (__m256) __builtin_ia32_vbroadcastf128_ps256 (__X);
        -:  755:}
        -:  756:
        -:  757:#ifdef __OPTIMIZE__
        -:  758:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  759:_mm256_insertf128_pd (__m256d __X, __m128d __Y, const int __O)
        -:  760:{
        -:  761:  return (__m256d) __builtin_ia32_vinsertf128_pd256 ((__v4df)__X,
        -:  762:						     (__v2df)__Y,
        -:  763:						     __O);
        -:  764:}
        -:  765:
        -:  766:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  767:_mm256_insertf128_ps (__m256 __X, __m128 __Y, const int __O)
        -:  768:{
        -:  769:  return (__m256) __builtin_ia32_vinsertf128_ps256 ((__v8sf)__X,
        -:  770:						    (__v4sf)__Y,
        -:  771:						    __O);
        -:  772:}
        -:  773:
        -:  774:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  775:_mm256_insertf128_si256 (__m256i __X, __m128i __Y, const int __O)
        -:  776:{
        -:  777:  return (__m256i) __builtin_ia32_vinsertf128_si256 ((__v8si)__X,
        -:  778:						     (__v4si)__Y,
        -:  779:						     __O);
        -:  780:}
        -:  781:
        -:  782:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  783:_mm256_insert_epi32 (__m256i __X, int __D, int const __N)
        -:  784:{
        -:  785:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 2);
        -:  786:  __Y = _mm_insert_epi32 (__Y, __D, __N % 4);
        -:  787:  return _mm256_insertf128_si256 (__X, __Y, __N >> 2);
        -:  788:}
        -:  789:
        -:  790:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  791:_mm256_insert_epi16 (__m256i __X, int __D, int const __N)
        -:  792:{
        -:  793:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 3);
        -:  794:  __Y = _mm_insert_epi16 (__Y, __D, __N % 8);
        -:  795:  return _mm256_insertf128_si256 (__X, __Y, __N >> 3);
        -:  796:}
        -:  797:
        -:  798:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  799:_mm256_insert_epi8 (__m256i __X, int __D, int const __N)
        -:  800:{
        -:  801:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 4);
        -:  802:  __Y = _mm_insert_epi8 (__Y, __D, __N % 16);
        -:  803:  return _mm256_insertf128_si256 (__X, __Y, __N >> 4);
        -:  804:}
        -:  805:
        -:  806:#ifdef __x86_64__
        -:  807:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  808:_mm256_insert_epi64 (__m256i __X, long long __D, int const __N)
        -:  809:{
        -:  810:  __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
        -:  811:  __Y = _mm_insert_epi64 (__Y, __D, __N % 2);
        -:  812:  return _mm256_insertf128_si256 (__X, __Y, __N >> 1);
        -:  813:}
        -:  814:#endif
        -:  815:#else
        -:  816:#define _mm256_insertf128_pd(X, Y, O)					\
        -:  817:  ((__m256d) __builtin_ia32_vinsertf128_pd256 ((__v4df)(__m256d)(X),	\
        -:  818:					       (__v2df)(__m128d)(Y),	\
        -:  819:					       (int)(O)))
        -:  820:
        -:  821:#define _mm256_insertf128_ps(X, Y, O)					\
        -:  822:  ((__m256) __builtin_ia32_vinsertf128_ps256 ((__v8sf)(__m256)(X),	\
        -:  823:					      (__v4sf)(__m128)(Y),  	\
        -:  824:					      (int)(O)))
        -:  825:
        -:  826:#define _mm256_insertf128_si256(X, Y, O)				\
        -:  827:  ((__m256i) __builtin_ia32_vinsertf128_si256 ((__v8si)(__m256i)(X),	\
        -:  828:					       (__v4si)(__m128i)(Y),	\
        -:  829:					       (int)(O)))
        -:  830:
        -:  831:#define _mm256_insert_epi32(X, D, N)					\
        -:  832:  (__extension__							\
        -:  833:   ({									\
        -:  834:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 2);		\
        -:  835:      __Y = _mm_insert_epi32 (__Y, (D), (N) % 4);			\
        -:  836:      _mm256_insertf128_si256 ((X), __Y, (N) >> 2);			\
        -:  837:    }))
        -:  838:
        -:  839:#define _mm256_insert_epi16(X, D, N)					\
        -:  840:  (__extension__							\
        -:  841:   ({									\
        -:  842:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 3);		\
        -:  843:      __Y = _mm_insert_epi16 (__Y, (D), (N) % 8);			\
        -:  844:      _mm256_insertf128_si256 ((X), __Y, (N) >> 3);			\
        -:  845:    }))
        -:  846:
        -:  847:#define _mm256_insert_epi8(X, D, N)					\
        -:  848:  (__extension__							\
        -:  849:   ({									\
        -:  850:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 4);		\
        -:  851:      __Y = _mm_insert_epi8 (__Y, (D), (N) % 16);			\
        -:  852:      _mm256_insertf128_si256 ((X), __Y, (N) >> 4);			\
        -:  853:    }))
        -:  854:
        -:  855:#ifdef __x86_64__
        -:  856:#define _mm256_insert_epi64(X, D, N)					\
        -:  857:  (__extension__							\
        -:  858:   ({									\
        -:  859:      __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 1);		\
        -:  860:      __Y = _mm_insert_epi64 (__Y, (D), (N) % 2);			\
        -:  861:      _mm256_insertf128_si256 ((X), __Y, (N) >> 1);			\
        -:  862:    }))
        -:  863:#endif
        -:  864:#endif
        -:  865:
        -:  866:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  867:_mm256_load_pd (double const *__P)
        -:  868:{
        -:  869:  return *(__m256d *)__P;
        -:  870:}
        -:  871:
        -:  872:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  873:_mm256_store_pd (double *__P, __m256d __A)
        -:  874:{
        -:  875:  *(__m256d *)__P = __A;
        -:  876:}
        -:  877:
        -:  878:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  879:_mm256_load_ps (float const *__P)
        -:  880:{
        -:  881:  return *(__m256 *)__P;
        -:  882:}
        -:  883:
        -:  884:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  885:_mm256_store_ps (float *__P, __m256 __A)
        -:  886:{
        -:  887:  *(__m256 *)__P = __A;
        -:  888:}
        -:  889:
        -:  890:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  891:_mm256_loadu_pd (double const *__P)
        -:  892:{
 12512499:  893:  return *(__m256d_u *)__P;
        -:  894:}
        -:  895:
        -:  896:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  897:_mm256_storeu_pd (double *__P, __m256d __A)
        -:  898:{
    87683:  899:  *(__m256d_u *)__P = __A;
        -:  900:}
        -:  901:
        -:  902:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  903:_mm256_loadu_ps (float const *__P)
        -:  904:{
        -:  905:  return *(__m256_u *)__P;
        -:  906:}
        -:  907:
        -:  908:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  909:_mm256_storeu_ps (float *__P, __m256 __A)
        -:  910:{
        -:  911:  *(__m256_u *)__P = __A;
        -:  912:}
        -:  913:
        -:  914:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  915:_mm256_load_si256 (__m256i const *__P)
        -:  916:{
        -:  917:  return *__P;
        -:  918:}
        -:  919:
        -:  920:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  921:_mm256_store_si256 (__m256i *__P, __m256i __A)
        -:  922:{
        -:  923:  *__P = __A;
        -:  924:}
        -:  925:
        -:  926:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  927:_mm256_loadu_si256 (__m256i_u const *__P)
        -:  928:{
        -:  929:  return *__P;
        -:  930:}
        -:  931:
        -:  932:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  933:_mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
        -:  934:{
        -:  935:  *__P = __A;
        -:  936:}
        -:  937:
        -:  938:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  939:_mm_maskload_pd (double const *__P, __m128i __M)
        -:  940:{
        -:  941:  return (__m128d) __builtin_ia32_maskloadpd ((const __v2df *)__P,
        -:  942:					      (__v2di)__M);
        -:  943:}
        -:  944:
        -:  945:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  946:_mm_maskstore_pd (double *__P, __m128i __M, __m128d __A)
        -:  947:{
        -:  948:  __builtin_ia32_maskstorepd ((__v2df *)__P, (__v2di)__M, (__v2df)__A);
        -:  949:}
        -:  950:
        -:  951:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  952:_mm256_maskload_pd (double const *__P, __m256i __M)
        -:  953:{
        -:  954:  return (__m256d) __builtin_ia32_maskloadpd256 ((const __v4df *)__P,
        -:  955:						 (__v4di)__M);
        -:  956:}
        -:  957:
        -:  958:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  959:_mm256_maskstore_pd (double *__P, __m256i __M, __m256d __A)
        -:  960:{
        -:  961:  __builtin_ia32_maskstorepd256 ((__v4df *)__P, (__v4di)__M, (__v4df)__A);
        -:  962:}
        -:  963:
        -:  964:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  965:_mm_maskload_ps (float const *__P, __m128i __M)
        -:  966:{
        -:  967:  return (__m128) __builtin_ia32_maskloadps ((const __v4sf *)__P,
        -:  968:					     (__v4si)__M);
        -:  969:}
        -:  970:
        -:  971:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  972:_mm_maskstore_ps (float *__P, __m128i __M, __m128 __A)
        -:  973:{
        -:  974:  __builtin_ia32_maskstoreps ((__v4sf *)__P, (__v4si)__M, (__v4sf)__A);
        -:  975:}
        -:  976:
        -:  977:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  978:_mm256_maskload_ps (float const *__P, __m256i __M)
        -:  979:{
        -:  980:  return (__m256) __builtin_ia32_maskloadps256 ((const __v8sf *)__P,
        -:  981:						(__v8si)__M);
        -:  982:}
        -:  983:
        -:  984:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  985:_mm256_maskstore_ps (float *__P, __m256i __M, __m256 __A)
        -:  986:{
        -:  987:  __builtin_ia32_maskstoreps256 ((__v8sf *)__P, (__v8si)__M, (__v8sf)__A);
        -:  988:}
        -:  989:
        -:  990:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  991:_mm256_movehdup_ps (__m256 __X)
        -:  992:{
        -:  993:  return (__m256) __builtin_ia32_movshdup256 ((__v8sf)__X);
        -:  994:}
        -:  995:
        -:  996:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -:  997:_mm256_moveldup_ps (__m256 __X)
        -:  998:{
        -:  999:  return (__m256) __builtin_ia32_movsldup256 ((__v8sf)__X);
        -: 1000:}
        -: 1001:
        -: 1002:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1003:_mm256_movedup_pd (__m256d __X)
        -: 1004:{
        -: 1005:  return (__m256d) __builtin_ia32_movddup256 ((__v4df)__X);
        -: 1006:}
        -: 1007:
        -: 1008:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1009:_mm256_lddqu_si256 (__m256i const *__P)
        -: 1010:{
        -: 1011:  return (__m256i) __builtin_ia32_lddqu256 ((char const *)__P);
        -: 1012:}
        -: 1013:
        -: 1014:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1015:_mm256_stream_si256 (__m256i *__A, __m256i __B)
        -: 1016:{
        -: 1017:  __builtin_ia32_movntdq256 ((__v4di *)__A, (__v4di)__B);
        -: 1018:}
        -: 1019:
        -: 1020:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1021:_mm256_stream_pd (double *__A, __m256d __B)
        -: 1022:{
        -: 1023:  __builtin_ia32_movntpd256 (__A, (__v4df)__B);
        -: 1024:}
        -: 1025:
        -: 1026:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1027:_mm256_stream_ps (float *__P, __m256 __A)
        -: 1028:{
        -: 1029:  __builtin_ia32_movntps256 (__P, (__v8sf)__A);
        -: 1030:}
        -: 1031:
        -: 1032:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1033:_mm256_rcp_ps (__m256 __A)
        -: 1034:{
        -: 1035:  return (__m256) __builtin_ia32_rcpps256 ((__v8sf)__A);
        -: 1036:}
        -: 1037:
        -: 1038:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1039:_mm256_rsqrt_ps (__m256 __A)
        -: 1040:{
        -: 1041:  return (__m256) __builtin_ia32_rsqrtps256 ((__v8sf)__A);
        -: 1042:}
        -: 1043:
        -: 1044:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1045:_mm256_sqrt_pd (__m256d __A)
        -: 1046:{
        -: 1047:  return (__m256d) __builtin_ia32_sqrtpd256 ((__v4df)__A);
        -: 1048:}
        -: 1049:
        -: 1050:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1051:_mm256_sqrt_ps (__m256 __A)
        -: 1052:{
        -: 1053:  return (__m256) __builtin_ia32_sqrtps256 ((__v8sf)__A);
        -: 1054:}
        -: 1055:
        -: 1056:#ifdef __OPTIMIZE__
        -: 1057:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1058:_mm256_round_pd (__m256d __V, const int __M)
        -: 1059:{
        -: 1060:  return (__m256d) __builtin_ia32_roundpd256 ((__v4df)__V, __M);
        -: 1061:}
        -: 1062:
        -: 1063:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1064:_mm256_round_ps (__m256 __V, const int __M)
        -: 1065:{
        -: 1066:  return (__m256) __builtin_ia32_roundps256 ((__v8sf)__V, __M);
        -: 1067:}
        -: 1068:#else
        -: 1069:#define _mm256_round_pd(V, M) \
        -: 1070:  ((__m256d) __builtin_ia32_roundpd256 ((__v4df)(__m256d)(V), (int)(M)))
        -: 1071:
        -: 1072:#define _mm256_round_ps(V, M) \
        -: 1073:  ((__m256) __builtin_ia32_roundps256 ((__v8sf)(__m256)(V), (int)(M)))
        -: 1074:#endif
        -: 1075:
        -: 1076:#define _mm256_ceil_pd(V)	_mm256_round_pd ((V), _MM_FROUND_CEIL)
        -: 1077:#define _mm256_floor_pd(V)	_mm256_round_pd ((V), _MM_FROUND_FLOOR)
        -: 1078:#define _mm256_ceil_ps(V)	_mm256_round_ps ((V), _MM_FROUND_CEIL)
        -: 1079:#define _mm256_floor_ps(V)	_mm256_round_ps ((V), _MM_FROUND_FLOOR)
        -: 1080:
        -: 1081:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1082:_mm256_unpackhi_pd (__m256d __A, __m256d __B)
        -: 1083:{
        -: 1084:  return (__m256d) __builtin_ia32_unpckhpd256 ((__v4df)__A, (__v4df)__B);
        -: 1085:}
        -: 1086:
        -: 1087:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1088:_mm256_unpacklo_pd (__m256d __A, __m256d __B)
        -: 1089:{
        -: 1090:  return (__m256d) __builtin_ia32_unpcklpd256 ((__v4df)__A, (__v4df)__B);
        -: 1091:}
        -: 1092:
        -: 1093:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1094:_mm256_unpackhi_ps (__m256 __A, __m256 __B)
        -: 1095:{
        -: 1096:  return (__m256) __builtin_ia32_unpckhps256 ((__v8sf)__A, (__v8sf)__B);
        -: 1097:}
        -: 1098:
        -: 1099:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1100:_mm256_unpacklo_ps (__m256 __A, __m256 __B)
        -: 1101:{
        -: 1102:  return (__m256) __builtin_ia32_unpcklps256 ((__v8sf)__A, (__v8sf)__B);
        -: 1103:}
        -: 1104:
        -: 1105:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1106:_mm_testz_pd (__m128d __M, __m128d __V)
        -: 1107:{
        -: 1108:  return __builtin_ia32_vtestzpd ((__v2df)__M, (__v2df)__V);
        -: 1109:}
        -: 1110:
        -: 1111:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1112:_mm_testc_pd (__m128d __M, __m128d __V)
        -: 1113:{
        -: 1114:  return __builtin_ia32_vtestcpd ((__v2df)__M, (__v2df)__V);
        -: 1115:}
        -: 1116:
        -: 1117:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1118:_mm_testnzc_pd (__m128d __M, __m128d __V)
        -: 1119:{
        -: 1120:  return __builtin_ia32_vtestnzcpd ((__v2df)__M, (__v2df)__V);
        -: 1121:}
        -: 1122:
        -: 1123:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1124:_mm_testz_ps (__m128 __M, __m128 __V)
        -: 1125:{
        -: 1126:  return __builtin_ia32_vtestzps ((__v4sf)__M, (__v4sf)__V);
        -: 1127:}
        -: 1128:
        -: 1129:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1130:_mm_testc_ps (__m128 __M, __m128 __V)
        -: 1131:{
        -: 1132:  return __builtin_ia32_vtestcps ((__v4sf)__M, (__v4sf)__V);
        -: 1133:}
        -: 1134:
        -: 1135:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1136:_mm_testnzc_ps (__m128 __M, __m128 __V)
        -: 1137:{
        -: 1138:  return __builtin_ia32_vtestnzcps ((__v4sf)__M, (__v4sf)__V);
        -: 1139:}
        -: 1140:
        -: 1141:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1142:_mm256_testz_pd (__m256d __M, __m256d __V)
        -: 1143:{
        -: 1144:  return __builtin_ia32_vtestzpd256 ((__v4df)__M, (__v4df)__V);
        -: 1145:}
        -: 1146:
        -: 1147:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1148:_mm256_testc_pd (__m256d __M, __m256d __V)
        -: 1149:{
        -: 1150:  return __builtin_ia32_vtestcpd256 ((__v4df)__M, (__v4df)__V);
        -: 1151:}
        -: 1152:
        -: 1153:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1154:_mm256_testnzc_pd (__m256d __M, __m256d __V)
        -: 1155:{
        -: 1156:  return __builtin_ia32_vtestnzcpd256 ((__v4df)__M, (__v4df)__V);
        -: 1157:}
        -: 1158:
        -: 1159:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1160:_mm256_testz_ps (__m256 __M, __m256 __V)
        -: 1161:{
        -: 1162:  return __builtin_ia32_vtestzps256 ((__v8sf)__M, (__v8sf)__V);
        -: 1163:}
        -: 1164:
        -: 1165:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1166:_mm256_testc_ps (__m256 __M, __m256 __V)
        -: 1167:{
        -: 1168:  return __builtin_ia32_vtestcps256 ((__v8sf)__M, (__v8sf)__V);
        -: 1169:}
        -: 1170:
        -: 1171:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1172:_mm256_testnzc_ps (__m256 __M, __m256 __V)
        -: 1173:{
        -: 1174:  return __builtin_ia32_vtestnzcps256 ((__v8sf)__M, (__v8sf)__V);
        -: 1175:}
        -: 1176:
        -: 1177:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1178:_mm256_testz_si256 (__m256i __M, __m256i __V)
        -: 1179:{
        -: 1180:  return __builtin_ia32_ptestz256 ((__v4di)__M, (__v4di)__V);
        -: 1181:}
        -: 1182:
        -: 1183:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1184:_mm256_testc_si256 (__m256i __M, __m256i __V)
        -: 1185:{
        -: 1186:  return __builtin_ia32_ptestc256 ((__v4di)__M, (__v4di)__V);
        -: 1187:}
        -: 1188:
        -: 1189:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1190:_mm256_testnzc_si256 (__m256i __M, __m256i __V)
        -: 1191:{
        -: 1192:  return __builtin_ia32_ptestnzc256 ((__v4di)__M, (__v4di)__V);
        -: 1193:}
        -: 1194:
        -: 1195:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1196:_mm256_movemask_pd (__m256d __A)
        -: 1197:{
 12592607: 1198:  return __builtin_ia32_movmskpd256 ((__v4df)__A);
        -: 1199:}
        -: 1200:
        -: 1201:extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1202:_mm256_movemask_ps (__m256 __A)
        -: 1203:{
        -: 1204:  return __builtin_ia32_movmskps256 ((__v8sf)__A);
        -: 1205:}
        -: 1206:
        -: 1207:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1208:_mm256_undefined_pd (void)
        -: 1209:{
        -: 1210:#pragma GCC diagnostic push
        -: 1211:#pragma GCC diagnostic ignored "-Winit-self"
        -: 1212:  __m256d __Y = __Y;
        -: 1213:#pragma GCC diagnostic pop
        -: 1214:  return __Y;
        -: 1215:}
        -: 1216:
        -: 1217:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1218:_mm256_undefined_ps (void)
        -: 1219:{
        -: 1220:#pragma GCC diagnostic push
        -: 1221:#pragma GCC diagnostic ignored "-Winit-self"
        -: 1222:  __m256 __Y = __Y;
        -: 1223:#pragma GCC diagnostic pop
        -: 1224:  return __Y;
        -: 1225:}
        -: 1226:
        -: 1227:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1228:_mm256_undefined_si256 (void)
        -: 1229:{
        -: 1230:#pragma GCC diagnostic push
        -: 1231:#pragma GCC diagnostic ignored "-Winit-self"
        -: 1232:  __m256i __Y = __Y;
        -: 1233:#pragma GCC diagnostic pop
        -: 1234:  return __Y;
        -: 1235:}
        -: 1236:
        -: 1237:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1238:_mm256_setzero_pd (void)
        -: 1239:{
        -: 1240:  return __extension__ (__m256d){ 0.0, 0.0, 0.0, 0.0 };
        -: 1241:}
        -: 1242:
        -: 1243:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1244:_mm256_setzero_ps (void)
        -: 1245:{
        -: 1246:  return __extension__ (__m256){ 0.0, 0.0, 0.0, 0.0,
        -: 1247:				 0.0, 0.0, 0.0, 0.0 };
        -: 1248:}
        -: 1249:
        -: 1250:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1251:_mm256_setzero_si256 (void)
        -: 1252:{
        -: 1253:  return __extension__ (__m256i)(__v4di){ 0, 0, 0, 0 };
        -: 1254:}
        -: 1255:
        -: 1256:/* Create the vector [A B C D].  */
        -: 1257:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1258:_mm256_set_pd (double __A, double __B, double __C, double __D)
        -: 1259:{
        -: 1260:  return __extension__ (__m256d){ __D, __C, __B, __A };
        -: 1261:}
        -: 1262:
        -: 1263:/* Create the vector [A B C D E F G H].  */
        -: 1264:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1265:_mm256_set_ps (float __A, float __B, float __C, float __D,
        -: 1266:	       float __E, float __F, float __G, float __H)
        -: 1267:{
        -: 1268:  return __extension__ (__m256){ __H, __G, __F, __E,
        -: 1269:				 __D, __C, __B, __A };
        -: 1270:}
        -: 1271:
        -: 1272:/* Create the vector [A B C D E F G H].  */
        -: 1273:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1274:_mm256_set_epi32 (int __A, int __B, int __C, int __D,
        -: 1275:		  int __E, int __F, int __G, int __H)
        -: 1276:{
        -: 1277:  return __extension__ (__m256i)(__v8si){ __H, __G, __F, __E,
        -: 1278:					  __D, __C, __B, __A };
        -: 1279:}
        -: 1280:
        -: 1281:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1282:_mm256_set_epi16 (short __q15, short __q14, short __q13, short __q12,
        -: 1283:		  short __q11, short __q10, short __q09, short __q08,
        -: 1284:		  short __q07, short __q06, short __q05, short __q04,
        -: 1285:		  short __q03, short __q02, short __q01, short __q00)
        -: 1286:{
        -: 1287:  return __extension__ (__m256i)(__v16hi){
        -: 1288:    __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
        -: 1289:    __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15
        -: 1290:  };
        -: 1291:}
        -: 1292:
        -: 1293:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1294:_mm256_set_epi8  (char __q31, char __q30, char __q29, char __q28,
        -: 1295:		  char __q27, char __q26, char __q25, char __q24,
        -: 1296:		  char __q23, char __q22, char __q21, char __q20,
        -: 1297:		  char __q19, char __q18, char __q17, char __q16,
        -: 1298:		  char __q15, char __q14, char __q13, char __q12,
        -: 1299:		  char __q11, char __q10, char __q09, char __q08,
        -: 1300:		  char __q07, char __q06, char __q05, char __q04,
        -: 1301:		  char __q03, char __q02, char __q01, char __q00)
        -: 1302:{
        -: 1303:  return __extension__ (__m256i)(__v32qi){
        -: 1304:    __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07,
        -: 1305:    __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15,
        -: 1306:    __q16, __q17, __q18, __q19, __q20, __q21, __q22, __q23,
        -: 1307:    __q24, __q25, __q26, __q27, __q28, __q29, __q30, __q31
        -: 1308:  };
        -: 1309:}
        -: 1310:
        -: 1311:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1312:_mm256_set_epi64x (long long __A, long long __B, long long __C,
        -: 1313:		   long long __D)
        -: 1314:{
        -: 1315:  return __extension__ (__m256i)(__v4di){ __D, __C, __B, __A };
        -: 1316:}
        -: 1317:
        -: 1318:/* Create a vector with all elements equal to A.  */
        -: 1319:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1320:_mm256_set1_pd (double __A)
        -: 1321:{
        -: 1322:  return __extension__ (__m256d){ __A, __A, __A, __A };
        -: 1323:}
        -: 1324:
        -: 1325:/* Create a vector with all elements equal to A.  */
        -: 1326:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1327:_mm256_set1_ps (float __A)
        -: 1328:{
        -: 1329:  return __extension__ (__m256){ __A, __A, __A, __A,
        -: 1330:				 __A, __A, __A, __A };
        -: 1331:}
        -: 1332:
        -: 1333:/* Create a vector with all elements equal to A.  */
        -: 1334:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1335:_mm256_set1_epi32 (int __A)
        -: 1336:{
        -: 1337:  return __extension__ (__m256i)(__v8si){ __A, __A, __A, __A,
        -: 1338:					  __A, __A, __A, __A };
        -: 1339:}
        -: 1340:
        -: 1341:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1342:_mm256_set1_epi16 (short __A)
        -: 1343:{
        -: 1344:  return _mm256_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A,
        -: 1345:			   __A, __A, __A, __A, __A, __A, __A, __A);
        -: 1346:}
        -: 1347:
        -: 1348:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1349:_mm256_set1_epi8 (char __A)
        -: 1350:{
        -: 1351:  return _mm256_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A,
        -: 1352:			  __A, __A, __A, __A, __A, __A, __A, __A,
        -: 1353:			  __A, __A, __A, __A, __A, __A, __A, __A,
        -: 1354:			  __A, __A, __A, __A, __A, __A, __A, __A);
        -: 1355:}
        -: 1356:
        -: 1357:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1358:_mm256_set1_epi64x (long long __A)
        -: 1359:{
        -: 1360:  return __extension__ (__m256i)(__v4di){ __A, __A, __A, __A };
        -: 1361:}
        -: 1362:
        -: 1363:/* Create vectors of elements in the reversed order from the
        -: 1364:   _mm256_set_XXX functions.  */
        -: 1365:
        -: 1366:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1367:_mm256_setr_pd (double __A, double __B, double __C, double __D)
        -: 1368:{
        -: 1369:  return _mm256_set_pd (__D, __C, __B, __A);
        -: 1370:}
        -: 1371:
        -: 1372:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1373:_mm256_setr_ps (float __A, float __B, float __C, float __D,
        -: 1374:		float __E, float __F, float __G, float __H)
        -: 1375:{
        -: 1376:  return _mm256_set_ps (__H, __G, __F, __E, __D, __C, __B, __A);
        -: 1377:}
        -: 1378:
        -: 1379:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1380:_mm256_setr_epi32 (int __A, int __B, int __C, int __D,
        -: 1381:		   int __E, int __F, int __G, int __H)
        -: 1382:{
        -: 1383:  return _mm256_set_epi32 (__H, __G, __F, __E, __D, __C, __B, __A);
        -: 1384:}
        -: 1385:
        -: 1386:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1387:_mm256_setr_epi16 (short __q15, short __q14, short __q13, short __q12,
        -: 1388:		   short __q11, short __q10, short __q09, short __q08,
        -: 1389:		   short __q07, short __q06, short __q05, short __q04,
        -: 1390:		   short __q03, short __q02, short __q01, short __q00)
        -: 1391:{
        -: 1392:  return _mm256_set_epi16 (__q00, __q01, __q02, __q03,
        -: 1393:			   __q04, __q05, __q06, __q07,
        -: 1394:			   __q08, __q09, __q10, __q11,
        -: 1395:			   __q12, __q13, __q14, __q15);
        -: 1396:}
        -: 1397:
        -: 1398:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1399:_mm256_setr_epi8  (char __q31, char __q30, char __q29, char __q28,
        -: 1400:		   char __q27, char __q26, char __q25, char __q24,
        -: 1401:		   char __q23, char __q22, char __q21, char __q20,
        -: 1402:		   char __q19, char __q18, char __q17, char __q16,
        -: 1403:		   char __q15, char __q14, char __q13, char __q12,
        -: 1404:		   char __q11, char __q10, char __q09, char __q08,
        -: 1405:		   char __q07, char __q06, char __q05, char __q04,
        -: 1406:		   char __q03, char __q02, char __q01, char __q00)
        -: 1407:{
        -: 1408:  return _mm256_set_epi8 (__q00, __q01, __q02, __q03,
        -: 1409:			  __q04, __q05, __q06, __q07,
        -: 1410:			  __q08, __q09, __q10, __q11,
        -: 1411:			  __q12, __q13, __q14, __q15,
        -: 1412:			  __q16, __q17, __q18, __q19,
        -: 1413:			  __q20, __q21, __q22, __q23,
        -: 1414:			  __q24, __q25, __q26, __q27,
        -: 1415:			  __q28, __q29, __q30, __q31);
        -: 1416:}
        -: 1417:
        -: 1418:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1419:_mm256_setr_epi64x (long long __A, long long __B, long long __C,
        -: 1420:		    long long __D)
        -: 1421:{
        -: 1422:  return _mm256_set_epi64x (__D, __C, __B, __A);
        -: 1423:}
        -: 1424:
        -: 1425:/* Casts between various SP, DP, INT vector types.  Note that these do no
        -: 1426:   conversion of values, they just change the type.  */
        -: 1427:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1428:_mm256_castpd_ps (__m256d __A)
        -: 1429:{
        -: 1430:  return (__m256) __A;
        -: 1431:}
        -: 1432:
        -: 1433:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1434:_mm256_castpd_si256 (__m256d __A)
        -: 1435:{
        -: 1436:  return (__m256i) __A;
        -: 1437:}
        -: 1438:
        -: 1439:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1440:_mm256_castps_pd (__m256 __A)
        -: 1441:{
        -: 1442:  return (__m256d) __A;
        -: 1443:}
        -: 1444:
        -: 1445:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1446:_mm256_castps_si256(__m256 __A)
        -: 1447:{
        -: 1448:  return (__m256i) __A;
        -: 1449:}
        -: 1450:
        -: 1451:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1452:_mm256_castsi256_ps (__m256i __A)
        -: 1453:{
        -: 1454:  return (__m256) __A;
        -: 1455:}
        -: 1456:
        -: 1457:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1458:_mm256_castsi256_pd (__m256i __A)
        -: 1459:{
        -: 1460:  return (__m256d) __A;
        -: 1461:}
        -: 1462:
        -: 1463:extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1464:_mm256_castpd256_pd128 (__m256d __A)
        -: 1465:{
    90182: 1466:  return (__m128d) __builtin_ia32_pd_pd256 ((__v4df)__A);
        -: 1467:}
        -: 1468:
        -: 1469:extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1470:_mm256_castps256_ps128 (__m256 __A)
        -: 1471:{
        -: 1472:  return (__m128) __builtin_ia32_ps_ps256 ((__v8sf)__A);
        -: 1473:}
        -: 1474:
        -: 1475:extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1476:_mm256_castsi256_si128 (__m256i __A)
        -: 1477:{
        -: 1478:  return (__m128i) __builtin_ia32_si_si256 ((__v8si)__A);
        -: 1479:}
        -: 1480:
        -: 1481:/* When cast is done from a 128 to 256-bit type, the low 128 bits of
        -: 1482:   the 256-bit result contain source parameter value and the upper 128
        -: 1483:   bits of the result are undefined.  Those intrinsics shouldn't
        -: 1484:   generate any extra moves.  */
        -: 1485:
        -: 1486:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1487:_mm256_castpd128_pd256 (__m128d __A)
        -: 1488:{
        -: 1489:  return (__m256d) __builtin_ia32_pd256_pd ((__v2df)__A);
        -: 1490:}
        -: 1491:
        -: 1492:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1493:_mm256_castps128_ps256 (__m128 __A)
        -: 1494:{
        -: 1495:  return (__m256) __builtin_ia32_ps256_ps ((__v4sf)__A);
        -: 1496:}
        -: 1497:
        -: 1498:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1499:_mm256_castsi128_si256 (__m128i __A)
        -: 1500:{
        -: 1501:  return (__m256i) __builtin_ia32_si256_si ((__v4si)__A);
        -: 1502:}
        -: 1503:
        -: 1504:/* Similarly, but with zero extension instead of undefined values.  */
        -: 1505:
        -: 1506:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1507:_mm256_zextpd128_pd256 (__m128d __A)
        -: 1508:{
        -: 1509:  return _mm256_insertf128_pd (_mm256_setzero_pd (), __A, 0);
        -: 1510:}
        -: 1511:
        -: 1512:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1513:_mm256_zextps128_ps256 (__m128 __A)
        -: 1514:{
        -: 1515:  return _mm256_insertf128_ps (_mm256_setzero_ps (), __A, 0);
        -: 1516:}
        -: 1517:
        -: 1518:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1519:_mm256_zextsi128_si256 (__m128i __A)
        -: 1520:{
        -: 1521:  return _mm256_insertf128_si256 (_mm256_setzero_si256 (), __A, 0);
        -: 1522:}
        -: 1523:
        -: 1524:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1525:_mm256_set_m128 ( __m128 __H, __m128 __L)
        -: 1526:{
        -: 1527:  return _mm256_insertf128_ps (_mm256_castps128_ps256 (__L), __H, 1);
        -: 1528:}
        -: 1529:
        -: 1530:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1531:_mm256_set_m128d (__m128d __H, __m128d __L)
        -: 1532:{
        -: 1533:  return _mm256_insertf128_pd (_mm256_castpd128_pd256 (__L), __H, 1);
        -: 1534:}
        -: 1535:
        -: 1536:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1537:_mm256_set_m128i (__m128i __H, __m128i __L)
        -: 1538:{
        -: 1539:  return _mm256_insertf128_si256 (_mm256_castsi128_si256 (__L), __H, 1);
        -: 1540:}
        -: 1541:
        -: 1542:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1543:_mm256_setr_m128 (__m128 __L, __m128 __H)
        -: 1544:{
        -: 1545:  return _mm256_set_m128 (__H, __L);
        -: 1546:}
        -: 1547:
        -: 1548:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1549:_mm256_setr_m128d (__m128d __L, __m128d __H)
        -: 1550:{
        -: 1551:  return _mm256_set_m128d (__H, __L);
        -: 1552:}
        -: 1553:
        -: 1554:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1555:_mm256_setr_m128i (__m128i __L, __m128i __H)
        -: 1556:{
        -: 1557:  return _mm256_set_m128i (__H, __L);
        -: 1558:}
        -: 1559:
        -: 1560:extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1561:_mm256_loadu2_m128 (float const *__PH, float const *__PL)
        -: 1562:{
        -: 1563:  return _mm256_insertf128_ps (_mm256_castps128_ps256 (_mm_loadu_ps (__PL)),
        -: 1564:			       _mm_loadu_ps (__PH), 1);
        -: 1565:}
        -: 1566:
        -: 1567:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1568:_mm256_storeu2_m128 (float *__PH, float *__PL, __m256 __A)
        -: 1569:{
        -: 1570:  _mm_storeu_ps (__PL, _mm256_castps256_ps128 (__A));
        -: 1571:  _mm_storeu_ps (__PH, _mm256_extractf128_ps (__A, 1));
        -: 1572:}
        -: 1573:
        -: 1574:extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1575:_mm256_loadu2_m128d (double const *__PH, double const *__PL)
        -: 1576:{
        -: 1577:  return _mm256_insertf128_pd (_mm256_castpd128_pd256 (_mm_loadu_pd (__PL)),
        -: 1578:			       _mm_loadu_pd (__PH), 1);
        -: 1579:}
        -: 1580:
        -: 1581:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1582:_mm256_storeu2_m128d (double *__PH, double *__PL, __m256d __A)
        -: 1583:{
        -: 1584:  _mm_storeu_pd (__PL, _mm256_castpd256_pd128 (__A));
        -: 1585:  _mm_storeu_pd (__PH, _mm256_extractf128_pd (__A, 1));
        -: 1586:}
        -: 1587:
        -: 1588:extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1589:_mm256_loadu2_m128i (__m128i_u const *__PH, __m128i_u const *__PL)
        -: 1590:{
        -: 1591:  return _mm256_insertf128_si256 (_mm256_castsi128_si256 (_mm_loadu_si128 (__PL)),
        -: 1592:				  _mm_loadu_si128 (__PH), 1);
        -: 1593:}
        -: 1594:
        -: 1595:extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
        -: 1596:_mm256_storeu2_m128i (__m128i_u *__PH, __m128i_u *__PL, __m256i __A)
        -: 1597:{
        -: 1598:  _mm_storeu_si128 (__PL, _mm256_castsi256_si128 (__A));
        -: 1599:  _mm_storeu_si128 (__PH, _mm256_extractf128_si256 (__A, 1));
        -: 1600:}
        -: 1601:
        -: 1602:#ifdef __DISABLE_AVX__
        -: 1603:#undef __DISABLE_AVX__
        -: 1604:#pragma GCC pop_options
        -: 1605:#endif /* __DISABLE_AVX__ */
        -: 1606:
        -: 1607:#endif /* _AVXINTRIN_H_INCLUDED */
