Lines Matching +full:128 +full:a
54 __target__("sse2,no-evex512"), __min_vector_width__(128)))
68 /// A 128-bit vector of [2 x double] containing one of the source operands.
70 /// A 128-bit vector of [2 x double] containing one of the source operands.
71 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
80 /// Adds two 128-bit vectors of [2 x double].
87 /// A 128-bit vector of [2 x double] containing one of the source operands.
89 /// A 128-bit vector of [2 x double] containing one of the source operands.
90 /// \returns A 128-bit vector of [2 x double] containing the sums of both
108 /// A 128-bit vector of [2 x double] containing the minuend.
110 /// A 128-bit vector of [2 x double] containing the subtrahend.
111 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
120 /// Subtracts two 128-bit vectors of [2 x double].
127 /// A 128-bit vector of [2 x double] containing the minuend.
129 /// A 128-bit vector of [2 x double] containing the subtrahend.
130 /// \returns A 128-bit vector of [2 x double] containing the differences between
147 /// A 128-bit vector of [2 x double] containing one of the source operands.
149 /// A 128-bit vector of [2 x double] containing one of the source operands.
150 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
159 /// Multiplies two 128-bit vectors of [2 x double].
166 /// A 128-bit vector of [2 x double] containing one of the operands.
168 /// A 128-bit vector of [2 x double] containing one of the operands.
169 /// \returns A 128-bit vector of [2 x double] containing the products of both
187 /// A 128-bit vector of [2 x double] containing the dividend.
189 /// A 128-bit vector of [2 x double] containing divisor.
190 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
199 /// Performs an element-by-element division of two 128-bit vectors of
207 /// A 128-bit vector of [2 x double] containing the dividend.
209 /// A 128-bit vector of [2 x double] containing the divisor.
210 /// \returns A 128-bit vector of [2 x double] containing the quotients of both
227 /// A 128-bit vector of [2 x double] containing one of the operands. The
231 /// A 128-bit vector of [2 x double] containing one of the operands. The
233 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
234 /// square root of the lower 64 bits of operand \a __b, and whose upper 64
235 /// bits are copied from the upper 64 bits of operand \a __a.
242 /// Calculates the square root of the each of two values stored in a
243 /// 128-bit vector of [2 x double].
250 /// A 128-bit vector of [2 x double].
251 /// \returns A 128-bit vector of [2 x double] containing the square roots of the
262 /// If either value in a comparison is NaN, returns the value from \a __b.
269 /// A 128-bit vector of [2 x double] containing one of the operands. The
272 /// A 128-bit vector of [2 x double] containing one of the operands. The
274 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
282 /// Performs element-by-element comparison of the two 128-bit vectors of
283 /// [2 x double] and returns a vector containing the lesser of each pair of
286 /// If either value in a comparison is NaN, returns the value from \a __b.
293 /// A 128-bit vector of [2 x double] containing one of the operands.
295 /// A 128-bit vector of [2 x double] containing one of the operands.
296 /// \returns A 128-bit vector of [2 x double] containing the minimum values
308 /// If either value in a comparison is NaN, returns the value from \a __b.
315 /// A 128-bit vector of [2 x double] containing one of the operands. The
318 /// A 128-bit vector of [2 x double] containing one of the operands. The
320 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
328 /// Performs element-by-element comparison of the two 128-bit vectors of
329 /// [2 x double] and returns a vector containing the greater of each pair
332 /// If either value in a comparison is NaN, returns the value from \a __b.
339 /// A 128-bit vector of [2 x double] containing one of the operands.
341 /// A 128-bit vector of [2 x double] containing one of the operands.
342 /// \returns A 128-bit vector of [2 x double] containing the maximum values
349 /// Performs a bitwise AND of two 128-bit vectors of [2 x double].
356 /// A 128-bit vector of [2 x double] containing one of the source operands.
358 /// A 128-bit vector of [2 x double] containing one of the source operands.
359 /// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
366 /// Performs a bitwise AND of two 128-bit vectors of [2 x double], using
374 /// A 128-bit vector of [2 x double] containing the left source operand. The
377 /// A 128-bit vector of [2 x double] containing the right source operand.
378 /// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
386 /// Performs a bitwise OR of two 128-bit vectors of [2 x double].
393 /// A 128-bit vector of [2 x double] containing one of the source operands.
395 /// A 128-bit vector of [2 x double] containing one of the source operands.
396 /// \returns A 128-bit vector of [2 x double] containing the bitwise OR of the
403 /// Performs a bitwise XOR of two 128-bit vectors of [2 x double].
410 /// A 128-bit vector of [2 x double] containing one of the source operands.
412 /// A 128-bit vector of [2 x double] containing one of the source operands.
413 /// \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the
421 /// 128-bit vectors of [2 x double] for equality.
424 /// If either value in a comparison is NaN, returns false.
431 /// A 128-bit vector of [2 x double].
433 /// A 128-bit vector of [2 x double].
434 /// \returns A 128-bit vector containing the comparison results.
441 /// 128-bit vectors of [2 x double] to determine if the values in the first
445 /// If either value in a comparison is NaN, returns false.
452 /// A 128-bit vector of [2 x double].
454 /// A 128-bit vector of [2 x double].
455 /// \returns A 128-bit vector containing the comparison results.
462 /// 128-bit vectors of [2 x double] to determine if the values in the first
466 /// If either value in a comparison is NaN, returns false.
473 /// A 128-bit vector of [2 x double].
475 /// A 128-bit vector of [2 x double].
476 /// \returns A 128-bit vector containing the comparison results.
483 /// 128-bit vectors of [2 x double] to determine if the values in the first
487 /// If either value in a comparison is NaN, returns false.
494 /// A 128-bit vector of [2 x double].
496 /// A 128-bit vector of [2 x double].
497 /// \returns A 128-bit vector containing the comparison results.
504 /// 128-bit vectors of [2 x double] to determine if the values in the first
508 /// If either value in a comparison is NaN, returns false.
515 /// A 128-bit vector of [2 x double].
517 /// A 128-bit vector of [2 x double].
518 /// \returns A 128-bit vector containing the comparison results.
525 /// 128-bit vectors of [2 x double] to determine if the values in the first
528 /// A pair of double-precision values are ordered with respect to each
529 /// other if neither value is a NaN. Each comparison returns 0x0 for false,
537 /// A 128-bit vector of [2 x double].
539 /// A 128-bit vector of [2 x double].
540 /// \returns A 128-bit vector containing the comparison results.
547 /// 128-bit vectors of [2 x double] to determine if the values in the first
550 /// A pair of double-precision values are unordered with respect to each
560 /// A 128-bit vector of [2 x double].
562 /// A 128-bit vector of [2 x double].
563 /// \returns A 128-bit vector containing the comparison results.
570 /// 128-bit vectors of [2 x double] to determine if the values in the first
574 /// If either value in a comparison is NaN, returns true.
581 /// A 128-bit vector of [2 x double].
583 /// A 128-bit vector of [2 x double].
584 /// \returns A 128-bit vector containing the comparison results.
591 /// 128-bit vectors of [2 x double] to determine if the values in the first
595 /// If either value in a comparison is NaN, returns true.
602 /// A 128-bit vector of [2 x double].
604 /// A 128-bit vector of [2 x double].
605 /// \returns A 128-bit vector containing the comparison results.
612 /// 128-bit vectors of [2 x double] to determine if the values in the first
616 /// If either value in a comparison is NaN, returns true.
623 /// A 128-bit vector of [2 x double].
625 /// A 128-bit vector of [2 x double].
626 /// \returns A 128-bit vector containing the comparison results.
633 /// 128-bit vectors of [2 x double] to determine if the values in the first
637 /// If either value in a comparison is NaN, returns true.
644 /// A 128-bit vector of [2 x double].
646 /// A 128-bit vector of [2 x double].
647 /// \returns A 128-bit vector containing the comparison results.
654 /// 128-bit vectors of [2 x double] to determine if the values in the first
658 /// If either value in a comparison is NaN, returns true.
665 /// A 128-bit vector of [2 x double].
667 /// A 128-bit vector of [2 x double].
668 /// \returns A 128-bit vector containing the comparison results.
675 /// the two 128-bit floating-point vectors of [2 x double] for equality.
678 /// If either value in a comparison is NaN, returns false.
685 /// A 128-bit vector of [2 x double]. The lower double-precision value is
686 /// compared to the lower double-precision value of \a __b.
688 /// A 128-bit vector of [2 x double]. The lower double-precision value is
689 /// compared to the lower double-precision value of \a __a.
690 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
691 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
698 /// the two 128-bit floating-point vectors of [2 x double] to determine if
703 /// If either value in a comparison is NaN, returns false.
710 /// A 128-bit vector of [2 x double]. The lower double-precision value is
711 /// compared to the lower double-precision value of \a __b.
713 /// A 128-bit vector of [2 x double]. The lower double-precision value is
714 /// compared to the lower double-precision value of \a __a.
715 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
716 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
723 /// the two 128-bit floating-point vectors of [2 x double] to determine if
728 /// If either value in a comparison is NaN, returns false.
735 /// A 128-bit vector of [2 x double]. The lower double-precision value is
736 /// compared to the lower double-precision value of \a __b.
738 /// A 128-bit vector of [2 x double]. The lower double-precision value is
739 /// compared to the lower double-precision value of \a __a.
740 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
741 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
748 /// the two 128-bit floating-point vectors of [2 x double] to determine if
753 /// If either value in a comparison is NaN, returns false.
760 /// A 128-bit vector of [2 x double]. The lower double-precision value is
761 /// compared to the lower double-precision value of \a __b.
763 /// A 128-bit vector of [2 x double]. The lower double-precision value is
764 /// compared to the lower double-precision value of \a __a.
765 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
766 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
774 /// the two 128-bit floating-point vectors of [2 x double] to determine if
779 /// If either value in a comparison is NaN, returns false.
786 /// A 128-bit vector of [2 x double]. The lower double-precision value is
787 /// compared to the lower double-precision value of \a __b.
789 /// A 128-bit vector of [2 x double]. The lower double-precision value is
790 /// compared to the lower double-precision value of \a __a.
791 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
792 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
800 /// the two 128-bit floating-point vectors of [2 x double] to determine if
804 /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair
806 /// neither value is a NaN.
813 /// A 128-bit vector of [2 x double]. The lower double-precision value is
814 /// compared to the lower double-precision value of \a __b.
816 /// A 128-bit vector of [2 x double]. The lower double-precision value is
817 /// compared to the lower double-precision value of \a __a.
818 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
819 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
826 /// the two 128-bit floating-point vectors of [2 x double] to determine if
830 /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair
840 /// A 128-bit vector of [2 x double]. The lower double-precision value is
841 /// compared to the lower double-precision value of \a __b.
843 /// A 128-bit vector of [2 x double]. The lower double-precision value is
844 /// compared to the lower double-precision value of \a __a.
845 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
846 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
853 /// the two 128-bit floating-point vectors of [2 x double] to determine if
858 /// If either value in a comparison is NaN, returns true.
865 /// A 128-bit vector of [2 x double]. The lower double-precision value is
866 /// compared to the lower double-precision value of \a __b.
868 /// A 128-bit vector of [2 x double]. The lower double-precision value is
869 /// compared to the lower double-precision value of \a __a.
870 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
871 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
878 /// the two 128-bit floating-point vectors of [2 x double] to determine if
883 /// If either value in a comparison is NaN, returns true.
890 /// A 128-bit vector of [2 x double]. The lower double-precision value is
891 /// compared to the lower double-precision value of \a __b.
893 /// A 128-bit vector of [2 x double]. The lower double-precision value is
894 /// compared to the lower double-precision value of \a __a.
895 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
896 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
903 /// the two 128-bit floating-point vectors of [2 x double] to determine if
908 /// If either value in a comparison is NaN, returns true.
915 /// A 128-bit vector of [2 x double]. The lower double-precision value is
916 /// compared to the lower double-precision value of \a __b.
918 /// A 128-bit vector of [2 x double]. The lower double-precision value is
919 /// compared to the lower double-precision value of \a __a.
920 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
921 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
928 /// the two 128-bit floating-point vectors of [2 x double] to determine if
933 /// If either value in a comparison is NaN, returns true.
940 /// A 128-bit vector of [2 x double]. The lower double-precision value is
941 /// compared to the lower double-precision value of \a __b.
943 /// A 128-bit vector of [2 x double]. The lower double-precision value is
944 /// compared to the lower double-precision value of \a __a.
945 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
946 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
954 /// the two 128-bit floating-point vectors of [2 x double] to determine if
959 /// If either value in a comparison is NaN, returns true.
966 /// A 128-bit vector of [2 x double]. The lower double-precision value is
967 /// compared to the lower double-precision value of \a __b.
969 /// A 128-bit vector of [2 x double]. The lower double-precision value is
970 /// compared to the lower double-precision value of \a __a.
971 /// \returns A 128-bit vector. The lower 64 bits contains the comparison
972 /// results. The upper 64 bits are copied from the upper 64 bits of \a __a.
980 /// the two 128-bit floating-point vectors of [2 x double] for equality.
982 /// The comparison returns 0 for false, 1 for true. If either value in a
990 /// A 128-bit vector of [2 x double]. The lower double-precision value is
991 /// compared to the lower double-precision value of \a __b.
993 /// A 128-bit vector of [2 x double]. The lower double-precision value is
994 /// compared to the lower double-precision value of \a __a.
1002 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1006 /// The comparison returns 0 for false, 1 for true. If either value in a
1014 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1015 /// compared to the lower double-precision value of \a __b.
1017 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1018 /// compared to the lower double-precision value of \a __a.
1026 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1030 /// The comparison returns 0 for false, 1 for true. If either value in a
1038 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1039 /// compared to the lower double-precision value of \a __b.
1041 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1042 /// compared to the lower double-precision value of \a __a.
1050 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1054 /// The comparison returns 0 for false, 1 for true. If either value in a
1062 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1063 /// compared to the lower double-precision value of \a __b.
1065 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1066 /// compared to the lower double-precision value of \a __a.
1074 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1078 /// The comparison returns 0 for false, 1 for true. If either value in a
1086 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1087 /// compared to the lower double-precision value of \a __b.
1089 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1090 /// compared to the lower double-precision value of \a __a.
1098 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1102 /// The comparison returns 0 for false, 1 for true. If either value in a
1110 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1111 /// compared to the lower double-precision value of \a __b.
1113 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1114 /// compared to the lower double-precision value of \a __a.
1122 /// the two 128-bit floating-point vectors of [2 x double] for equality.
1124 /// The comparison returns 0 for false, 1 for true. If either value in a
1132 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1133 /// compared to the lower double-precision value of \a __b.
1135 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1136 /// compared to the lower double-precision value of \a __a.
1144 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1148 /// The comparison returns 0 for false, 1 for true. If either value in a
1156 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1157 /// compared to the lower double-precision value of \a __b.
1159 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1160 /// compared to the lower double-precision value of \a __a.
1168 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1172 /// The comparison returns 0 for false, 1 for true. If either value in a
1180 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1181 /// compared to the lower double-precision value of \a __b.
1183 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1184 /// compared to the lower double-precision value of \a __a.
1192 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1196 /// The comparison returns 0 for false, 1 for true. If either value in a
1204 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1205 /// compared to the lower double-precision value of \a __b.
1207 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1208 /// compared to the lower double-precision value of \a __a.
1216 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1220 /// The comparison returns 0 for false, 1 for true. If either value in a
1228 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1229 /// compared to the lower double-precision value of \a __b.
1231 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1232 /// compared to the lower double-precision value of \a __a.
1240 /// the two 128-bit floating-point vectors of [2 x double] to determine if
1244 /// The comparison returns 0 for false, 1 for true. If either value in a
1252 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1253 /// compared to the lower double-precision value of \a __b.
1255 /// A 128-bit vector of [2 x double]. The lower double-precision value is
1256 /// compared to the lower double-precision value of \a __a.
1263 /// Converts the two double-precision floating-point elements of a
1264 /// 128-bit vector of [2 x double] into two single-precision floating-point
1265 /// values, returned in the lower 64 bits of a 128-bit vector of [4 x float].
1273 /// A 128-bit vector of [2 x double].
1274 /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
1280 /// Converts the lower two single-precision floating-point elements of a
1281 /// 128-bit vector of [4 x float] into two double-precision floating-point
1282 /// values, returned in a 128-bit vector of [2 x double]. The upper two
1290 /// A 128-bit vector of [4 x float]. The lower two single-precision
1293 /// \returns A 128-bit vector of [2 x double] containing the converted values.
1299 /// Converts the lower two integer elements of a 128-bit vector of
1300 /// [4 x i32] into two double-precision floating-point values, returned in a
1301 /// 128-bit vector of [2 x double].
1310 /// A 128-bit integer vector of [4 x i32]. The lower two integer elements are
1314 /// \returns A 128-bit vector of [2 x double] containing the converted values.
1320 /// Converts the two double-precision floating-point elements of a
1321 /// 128-bit vector of [2 x double] into two signed 32-bit integer values,
1322 /// returned in the lower 64 bits of a 128-bit vector of [4 x i32]. The upper
1325 /// If a converted value does not fit in a 32-bit integer, raises a
1334 /// A 128-bit vector of [2 x double].
1335 /// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
1341 /// Converts the low-order element of a 128-bit vector of [2 x double]
1342 /// into a 32-bit signed integer value.
1344 /// If the converted value does not fit in a 32-bit integer, raises a
1353 /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the
1355 /// \returns A 32-bit signed integer containing the converted value.
1360 /// Converts the lower double-precision floating-point element of a
1361 /// 128-bit vector of [2 x double], in the second parameter, into a
1362 /// single-precision floating-point value, returned in the lower 32 bits of a
1363 /// 128-bit vector of [4 x float]. The upper 96 bits of the result vector are
1371 /// A 128-bit vector of [4 x float]. The upper 96 bits of this parameter are
1374 /// A 128-bit vector of [2 x double]. The lower double-precision
1376 /// \returns A 128-bit vector of [4 x float]. The lower 32 bits contain the
1384 /// Converts a 32-bit signed integer value, in the second parameter, into
1385 /// a double-precision floating-point value, returned in the lower 64 bits of
1386 /// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector
1394 /// A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are
1397 /// A 32-bit signed integer containing the value to be converted.
1398 /// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
1407 /// Converts the lower single-precision floating-point element of a
1408 /// 128-bit vector of [4 x float], in the second parameter, into a
1410 /// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector
1418 /// A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are
1421 /// A 128-bit vector of [4 x float]. The lower single-precision
1423 /// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
1432 /// Converts the two double-precision floating-point elements of a
1433 /// 128-bit vector of [2 x double] into two signed truncated (rounded
1435 /// of a 128-bit vector of [4 x i32].
1437 /// If a converted value does not fit in a 32-bit integer, raises a
1447 /// A 128-bit vector of [2 x double].
1448 /// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
1454 /// Converts the low-order element of a [2 x double] vector into a 32-bit
1457 /// If the converted value does not fit in a 32-bit integer, raises a
1467 /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the
1469 /// \returns A 32-bit signed integer containing the converted value.
1474 /// Converts the two double-precision floating-point elements of a
1475 /// 128-bit vector of [2 x double] into two signed 32-bit integer values,
1476 /// returned in a 64-bit vector of [2 x i32].
1478 /// If a converted value does not fit in a 32-bit integer, raises a
1487 /// A 128-bit vector of [2 x double].
1488 /// \returns A 64-bit vector of [2 x i32] containing the converted values.
1493 /// Converts the two double-precision floating-point elements of a
1494 /// 128-bit vector of [2 x double] into two signed truncated (rounded toward
1495 /// zero) 32-bit integer values, returned in a 64-bit vector of [2 x i32].
1497 /// If a converted value does not fit in a 32-bit integer, raises a
1506 /// A 128-bit vector of [2 x double].
1507 /// \returns A 64-bit vector of [2 x i32] containing the converted values.
1512 /// Converts the two signed 32-bit integer elements of a 64-bit vector of
1513 /// [2 x i32] into two double-precision floating-point values, returned in a
1514 /// 128-bit vector of [2 x double].
1521 /// A 64-bit vector of [2 x i32].
1522 /// \returns A 128-bit vector of [2 x double] containing the converted values.
1527 /// Returns the low-order element of a 128-bit vector of [2 x double] as
1528 /// a double-precision floating-point value.
1535 /// A 128-bit vector of [2 x double]. The lower 64 bits are returned.
1536 /// \returns A double-precision floating-point value copied from the lower 64
1537 /// bits of \a __a.
1542 /// Loads a 128-bit floating-point vector of [2 x double] from an aligned
1550 /// A pointer to a 128-bit memory location. The address of the memory
1552 /// \returns A 128-bit vector of [2 x double] containing the loaded values.
1557 /// Loads a double-precision floating-point value from a specified memory
1558 /// location and duplicates it to both vector elements of a 128-bit vector of
1566 /// A pointer to a memory location containing a double-precision value.
1567 /// \returns A 128-bit vector of [2 x double] containing the loaded and
1580 /// memory location into a 128-bit vector of [2 x double].
1586 /// with the \c VMOVAPD, resulting in only a \c VPERMILPD instruction.
1589 /// A 16-byte aligned pointer to an array of double-precision values to be
1591 /// \returns A 128-bit vector of [2 x double] containing the reversed loaded
1598 /// Loads a 128-bit floating-point vector of [2 x double] from an
1606 /// A pointer to a 128-bit memory location. The address of the memory
1608 /// \returns A 128-bit vector of [2 x double] containing the loaded values.
1616 /// Loads a 64-bit integer value to the low element of a 128-bit integer
1624 /// A pointer to a 64-bit memory location. The address of the memory
1626 /// \returns A 128-bit vector of [2 x i64] containing the loaded value.
1635 /// Loads a 32-bit integer value to the low element of a 128-bit integer
1643 /// A pointer to a 32-bit memory location. The address of the memory
1645 /// \returns A 128-bit vector of [4 x i32] containing the loaded value.
1654 /// Loads a 16-bit integer value to the low element of a 128-bit integer
1659 /// This intrinsic does not correspond to a specific instruction.
1662 /// A pointer to a 16-bit memory location. The address of the memory
1664 /// \returns A 128-bit vector of [8 x i16] containing the loaded value.
1673 /// Loads a 64-bit double-precision value to the low element of a
1674 /// 128-bit integer vector and clears the upper element.
1681 /// A pointer to a memory location containing a double-precision value.
1683 /// \returns A 128-bit vector of [2 x double] containing the loaded value.
1692 /// Loads a double-precision value into the high-order bits of a 128-bit
1701 /// A 128-bit vector of [2 x double]. \n
1704 /// A pointer to a 64-bit memory location containing a double-precision
1708 /// \returns A 128-bit vector of [2 x double] containing the moved values.
1718 /// Loads a double-precision value into the low-order bits of a 128-bit
1727 /// A 128-bit vector of [2 x double]. \n
1730 /// A pointer to a 64-bit memory location containing a double-precision
1734 /// \returns A 128-bit vector of [2 x double] containing the moved values.
1744 /// Constructs a 128-bit floating-point vector of [2 x double] with
1753 /// \returns A 128-bit floating-point vector of [2 x double] with unspecified
1759 /// Constructs a 128-bit floating-point vector of [2 x double]. The lower
1768 /// A double-precision floating-point value used to initialize the lower 64
1770 /// \returns An initialized 128-bit floating-point vector of [2 x double]. The
1777 /// Constructs a 128-bit floating-point vector of [2 x double], with each
1786 /// A double-precision floating-point value used to initialize each vector
1788 /// \returns An initialized 128-bit floating-point vector of [2 x double].
1793 /// Constructs a 128-bit floating-point vector of [2 x double], with each
1802 /// A double-precision floating-point value used to initialize each vector
1804 /// \returns An initialized 128-bit floating-point vector of [2 x double].
1809 /// Constructs a 128-bit floating-point vector of [2 x double]
1817 /// A double-precision floating-point value used to initialize the upper 64
1820 /// A double-precision floating-point value used to initialize the lower 64
1822 /// \returns An initialized 128-bit floating-point vector of [2 x double].
1828 /// Constructs a 128-bit floating-point vector of [2 x double],
1837 /// A double-precision floating-point value used to initialize the lower 64
1840 /// A double-precision floating-point value used to initialize the upper 64
1842 /// \returns An initialized 128-bit floating-point vector of [2 x double].
1848 /// Constructs a 128-bit floating-point vector of [2 x double]
1855 /// \returns An initialized 128-bit floating-point vector of [2 x double] with
1861 /// Constructs a 128-bit floating-point vector of [2 x double]. The lower
1870 /// A 128-bit vector of [2 x double]. The upper 64 bits are written to the
1873 /// A 128-bit vector of [2 x double]. The lower 64 bits are written to the
1875 /// \returns A 128-bit vector of [2 x double] containing the moved values.
1882 /// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a
1890 /// A pointer to a 64-bit memory location.
1892 /// A 128-bit vector of [2 x double] containing the value to be stored.
1901 /// Moves packed double-precision values from a 128-bit vector of
1902 /// [2 x double] to a memory location.
1909 /// A pointer to an aligned memory location that can store two
1912 /// A packed 128-bit vector of [2 x double] containing the values to be
1919 /// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to
1920 /// the upper and lower 64 bits of a memory location.
1928 /// A pointer to a memory location that can store two double-precision
1931 /// A 128-bit vector of [2 x double] whose lower 64 bits are copied to each
1932 /// of the values in \a __dp.
1939 /// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to
1940 /// the upper and lower 64 bits of a memory location.
1948 /// A pointer to a memory location that can store two double-precision
1951 /// A 128-bit vector of [2 x double] whose lower 64 bits are copied to each
1952 /// of the values in \a __dp.
1958 /// Stores a 128-bit vector of [2 x double] into an unaligned memory
1966 /// A pointer to a 128-bit memory location. The address of the memory
1969 /// A 128-bit vector of [2 x double] containing the values to be stored.
1978 /// Stores two double-precision values, in reverse order, from a 128-bit
1979 /// vector of [2 x double] to a 16-byte aligned memory location.
1983 /// This intrinsic corresponds to a shuffling instruction followed by a
1987 /// A pointer to a 16-byte aligned memory location that can store two
1990 /// A 128-bit vector of [2 x double] containing the values to be reversed and
1998 /// Stores the upper 64 bits of a 128-bit vector of [2 x double] to a
2006 /// A pointer to a 64-bit memory location.
2008 /// A 128-bit vector of [2 x double] containing the value to be stored.
2017 /// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a
2025 /// A pointer to a 64-bit memory location.
2027 /// A 128-bit vector of [2 x double] containing the value to be stored.
2036 /// Adds the corresponding elements of two 128-bit vectors of [16 x i8],
2037 /// saving the lower 8 bits of each sum in the corresponding element of a
2038 /// 128-bit result vector of [16 x i8].
2047 /// A 128-bit vector of [16 x i8].
2049 /// A 128-bit vector of [16 x i8].
2050 /// \returns A 128-bit vector of [16 x i8] containing the sums of both
2057 /// Adds the corresponding elements of two 128-bit vectors of [8 x i16],
2058 /// saving the lower 16 bits of each sum in the corresponding element of a
2059 /// 128-bit result vector of [8 x i16].
2068 /// A 128-bit vector of [8 x i16].
2070 /// A 128-bit vector of [8 x i16].
2071 /// \returns A 128-bit vector of [8 x i16] containing the sums of both
2078 /// Adds the corresponding elements of two 128-bit vectors of [4 x i32],
2079 /// saving the lower 32 bits of each sum in the corresponding element of a
2080 /// 128-bit result vector of [4 x i32].
2089 /// A 128-bit vector of [4 x i32].
2091 /// A 128-bit vector of [4 x i32].
2092 /// \returns A 128-bit vector of [4 x i32] containing the sums of both
2107 /// A 64-bit integer.
2109 /// A 64-bit integer.
2110 /// \returns A 64-bit integer containing the sum of both parameters.
2116 /// Adds the corresponding elements of two 128-bit vectors of [2 x i64],
2117 /// saving the lower 64 bits of each sum in the corresponding element of a
2118 /// 128-bit result vector of [2 x i64].
2127 /// A 128-bit vector of [2 x i64].
2129 /// A 128-bit vector of [2 x i64].
2130 /// \returns A 128-bit vector of [2 x i64] containing the sums of both
2137 /// Adds, with saturation, the corresponding elements of two 128-bit
2139 /// of a 128-bit result vector of [16 x i8].
2149 /// A 128-bit signed [16 x i8] vector.
2151 /// A 128-bit signed [16 x i8] vector.
2152 /// \returns A 128-bit signed [16 x i8] vector containing the saturated sums of
2159 /// Adds, with saturation, the corresponding elements of two 128-bit
2161 /// of a 128-bit result vector of [8 x i16].
2171 /// A 128-bit signed [8 x i16] vector.
2173 /// A 128-bit signed [8 x i16] vector.
2174 /// \returns A 128-bit signed [8 x i16] vector containing the saturated sums of
2181 /// Adds, with saturation, the corresponding elements of two 128-bit
2183 /// of a 128-bit result vector of [16 x i8].
2193 /// A 128-bit unsigned [16 x i8] vector.
2195 /// A 128-bit unsigned [16 x i8] vector.
2196 /// \returns A 128-bit unsigned [16 x i8] vector containing the saturated sums
2203 /// Adds, with saturation, the corresponding elements of two 128-bit
2205 /// of a 128-bit result vector of [8 x i16].
2215 /// A 128-bit unsigned [8 x i16] vector.
2217 /// A 128-bit unsigned [8 x i16] vector.
2218 /// \returns A 128-bit unsigned [8 x i16] vector containing the saturated sums
2226 /// 128-bit unsigned [16 x i8] vectors, saving each result in the
2227 /// corresponding element of a 128-bit result vector of [16 x i8].
2234 /// A 128-bit unsigned [16 x i8] vector.
2236 /// A 128-bit unsigned [16 x i8] vector.
2237 /// \returns A 128-bit unsigned [16 x i8] vector containing the rounded
2245 /// 128-bit unsigned [8 x i16] vectors, saving each result in the
2246 /// corresponding element of a 128-bit result vector of [8 x i16].
2253 /// A 128-bit unsigned [8 x i16] vector.
2255 /// A 128-bit unsigned [8 x i16] vector.
2256 /// \returns A 128-bit unsigned [8 x i16] vector containing the rounded
2263 /// Multiplies the corresponding elements of two 128-bit signed [8 x i16]
2265 /// adds the consecutive pairs of 32-bit products to form a 128-bit signed
2268 /// For example, bits [15:0] of both parameters are multiplied producing a
2270 /// a 32-bit product, and the sum of those two products becomes bits [31:0]
2278 /// A 128-bit signed [8 x i16] vector.
2280 /// A 128-bit signed [8 x i16] vector.
2281 /// \returns A 128-bit signed [4 x i32] vector containing the sums of products
2288 /// Compares corresponding elements of two 128-bit signed [8 x i16]
2290 /// corresponding element of a 128-bit result vector of [8 x i16].
2297 /// A 128-bit signed [8 x i16] vector.
2299 /// A 128-bit signed [8 x i16] vector.
2300 /// \returns A 128-bit signed [8 x i16] vector containing the greater value of
2307 /// Compares corresponding elements of two 128-bit unsigned [16 x i8]
2309 /// corresponding element of a 128-bit result vector of [16 x i8].
2316 /// A 128-bit unsigned [16 x i8] vector.
2318 /// A 128-bit unsigned [16 x i8] vector.
2319 /// \returns A 128-bit unsigned [16 x i8] vector containing the greater value of
2326 /// Compares corresponding elements of two 128-bit signed [8 x i16]
2328 /// corresponding element of a 128-bit result vector of [8 x i16].
2335 /// A 128-bit signed [8 x i16] vector.
2337 /// A 128-bit signed [8 x i16] vector.
2338 /// \returns A 128-bit signed [8 x i16] vector containing the smaller value of
2345 /// Compares corresponding elements of two 128-bit unsigned [16 x i8]
2347 /// corresponding element of a 128-bit result vector of [16 x i8].
2354 /// A 128-bit unsigned [16 x i8] vector.
2356 /// A 128-bit unsigned [16 x i8] vector.
2357 /// \returns A 128-bit unsigned [16 x i8] vector containing the smaller value of
2366 /// corresponding element of a 128-bit signed [8 x i16] result vector.
2373 /// A 128-bit signed [8 x i16] vector.
2375 /// A 128-bit signed [8 x i16] vector.
2376 /// \returns A 128-bit signed [8 x i16] vector containing the upper 16 bits of
2385 /// corresponding element of a 128-bit unsigned [8 x i16] result vector.
2392 /// A 128-bit unsigned [8 x i16] vector.
2394 /// A 128-bit unsigned [8 x i16] vector.
2395 /// \returns A 128-bit unsigned [8 x i16] vector containing the upper 16 bits
2404 /// corresponding element of a 128-bit signed [8 x i16] result vector.
2411 /// A 128-bit signed [8 x i16] vector.
2413 /// A 128-bit signed [8 x i16] vector.
2414 /// \returns A 128-bit signed [8 x i16] vector containing the lower 16 bits of
2430 /// A 64-bit integer containing one of the source operands.
2432 /// A 64-bit integer containing one of the source operands.
2433 /// \returns A 64-bit integer vector containing the product of both operands.
2441 /// the 64-bit products in the corresponding elements of a [2 x i64] vector.
2448 /// A [2 x i64] vector containing one of the source operands.
2450 /// A [2 x i64] vector containing one of the source operands.
2451 /// \returns A [2 x i64] vector containing the product of both operands.
2458 /// values in two 128-bit vectors. Sums the first 8 absolute differences, and
2460 /// unsigned 16-bit integer sums into the upper and lower elements of a
2468 /// A 128-bit integer vector containing one of the source operands.
2470 /// A 128-bit integer vector containing one of the source operands.
2471 /// \returns A [2 x i64] vector containing the sums of the sets of absolute
2485 /// A 128-bit integer vector containing the minuends.
2487 /// A 128-bit integer vector containing the subtrahends.
2488 /// \returns A 128-bit integer vector containing the differences of the values
2502 /// A 128-bit integer vector containing the minuends.
2504 /// A 128-bit integer vector containing the subtrahends.
2505 /// \returns A 128-bit integer vector containing the differences of the values
2519 /// A 128-bit integer vector containing the minuends.
2521 /// A 128-bit integer vector containing the subtrahends.
2522 /// \returns A 128-bit integer vector containing the differences of the values
2537 /// A 64-bit integer vector containing the minuend.
2539 /// A 64-bit integer vector containing the subtrahend.
2540 /// \returns A 64-bit integer vector containing the difference of the values in
2554 /// A 128-bit integer vector containing the minuends.
2556 /// A 128-bit integer vector containing the subtrahends.
2557 /// \returns A 128-bit integer vector containing the differences of the values
2576 /// A 128-bit integer vector containing the minuends.
2578 /// A 128-bit integer vector containing the subtrahends.
2579 /// \returns A 128-bit integer vector containing the differences of the values
2598 /// A 128-bit integer vector containing the minuends.
2600 /// A 128-bit integer vector containing the subtrahends.
2601 /// \returns A 128-bit integer vector containing the differences of the values
2619 /// A 128-bit integer vector containing the minuends.
2621 /// A 128-bit integer vector containing the subtrahends.
2622 /// \returns A 128-bit integer vector containing the unsigned integer
2640 /// A 128-bit integer vector containing the minuends.
2642 /// A 128-bit integer vector containing the subtrahends.
2643 /// \returns A 128-bit integer vector containing the unsigned integer
2650 /// Performs a bitwise AND of two 128-bit integer vectors.
2657 /// A 128-bit integer vector containing one of the source operands.
2659 /// A 128-bit integer vector containing one of the source operands.
2660 /// \returns A 128-bit integer vector containing the bitwise AND of the values
2667 /// Performs a bitwise AND of two 128-bit integer vectors, using the
2675 /// A 128-bit vector containing the left source operand. The one's complement
2678 /// A 128-bit vector containing the right source operand.
2679 /// \returns A 128-bit integer vector containing the bitwise AND of the one's
2685 /// Performs a bitwise OR of two 128-bit integer vectors.
2692 /// A 128-bit integer vector containing one of the source operands.
2694 /// A 128-bit integer vector containing one of the source operands.
2695 /// \returns A 128-bit integer vector containing the bitwise OR of the values
2702 /// Performs a bitwise exclusive OR of two 128-bit integer vectors.
2709 /// A 128-bit integer vector containing one of the source operands.
2711 /// A 128-bit integer vector containing one of the source operands.
2712 /// \returns A 128-bit integer vector containing the bitwise exclusive OR of the
2719 /// Left-shifts the 128-bit integer vector operand by the specified
2725 /// __m128i _mm_slli_si128(__m128i a, const int imm);
2730 /// \param a
2731 /// A 128-bit integer vector containing the source operand.
2734 /// \a a.
2735 /// \returns A 128-bit integer vector containing the left-shifted value.
2736 #define _mm_slli_si128(a, imm) \ argument
2737 ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), \
2740 #define _mm_bslli_si128(a, imm) \ argument
2741 ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), \
2744 /// Left-shifts each 16-bit value in the 128-bit integer vector operand
2752 /// A 128-bit integer vector containing the source operand.
2755 /// in operand \a __a.
2756 /// \returns A 128-bit integer vector containing the left-shifted values.
2762 /// Left-shifts each 16-bit value in the 128-bit integer vector operand
2770 /// A 128-bit integer vector containing the source operand.
2772 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2773 /// to left-shift each value in operand \a __a.
2774 /// \returns A 128-bit integer vector containing the left-shifted values.
2780 /// Left-shifts each 32-bit value in the 128-bit integer vector operand
2788 /// A 128-bit integer vector containing the source operand.
2791 /// in operand \a __a.
2792 /// \returns A 128-bit integer vector containing the left-shifted values.
2798 /// Left-shifts each 32-bit value in the 128-bit integer vector operand
2806 /// A 128-bit integer vector containing the source operand.
2808 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2809 /// to left-shift each value in operand \a __a.
2810 /// \returns A 128-bit integer vector containing the left-shifted values.
2816 /// Left-shifts each 64-bit value in the 128-bit integer vector operand
2824 /// A 128-bit integer vector containing the source operand.
2827 /// in operand \a __a.
2828 /// \returns A 128-bit integer vector containing the left-shifted values.
2834 /// Left-shifts each 64-bit value in the 128-bit integer vector operand
2842 /// A 128-bit integer vector containing the source operand.
2844 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2845 /// to left-shift each value in operand \a __a.
2846 /// \returns A 128-bit integer vector containing the left-shifted values.
2852 /// Right-shifts each 16-bit value in the 128-bit integer vector operand
2861 /// A 128-bit integer vector containing the source operand.
2864 /// in operand \a __a.
2865 /// \returns A 128-bit integer vector containing the right-shifted values.
2871 /// Right-shifts each 16-bit value in the 128-bit integer vector operand
2880 /// A 128-bit integer vector containing the source operand.
2882 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2883 /// to right-shift each value in operand \a __a.
2884 /// \returns A 128-bit integer vector containing the right-shifted values.
2890 /// Right-shifts each 32-bit value in the 128-bit integer vector operand
2899 /// A 128-bit integer vector containing the source operand.
2902 /// in operand \a __a.
2903 /// \returns A 128-bit integer vector containing the right-shifted values.
2909 /// Right-shifts each 32-bit value in the 128-bit integer vector operand
2918 /// A 128-bit integer vector containing the source operand.
2920 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2921 /// to right-shift each value in operand \a __a.
2922 /// \returns A 128-bit integer vector containing the right-shifted values.
2928 /// Right-shifts the 128-bit integer vector operand by the specified
2934 /// __m128i _mm_srli_si128(__m128i a, const int imm);
2939 /// \param a
2940 /// A 128-bit integer vector containing the source operand.
2943 /// \a a.
2944 /// \returns A 128-bit integer vector containing the right-shifted value.
2945 #define _mm_srli_si128(a, imm) \ argument
2946 ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), \
2949 #define _mm_bsrli_si128(a, imm) \ argument
2950 ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), \
2953 /// Right-shifts each of 16-bit values in the 128-bit integer vector
2961 /// A 128-bit integer vector containing the source operand.
2964 /// in operand \a __a.
2965 /// \returns A 128-bit integer vector containing the right-shifted values.
2971 /// Right-shifts each of 16-bit values in the 128-bit integer vector
2979 /// A 128-bit integer vector containing the source operand.
2981 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2982 /// to right-shift each value in operand \a __a.
2983 /// \returns A 128-bit integer vector containing the right-shifted values.
2989 /// Right-shifts each of 32-bit values in the 128-bit integer vector
2997 /// A 128-bit integer vector containing the source operand.
3000 /// in operand \a __a.
3001 /// \returns A 128-bit integer vector containing the right-shifted values.
3007 /// Right-shifts each of 32-bit values in the 128-bit integer vector
3015 /// A 128-bit integer vector containing the source operand.
3017 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
3018 /// to right-shift each value in operand \a __a.
3019 /// \returns A 128-bit integer vector containing the right-shifted values.
3025 /// Right-shifts each of 64-bit values in the 128-bit integer vector
3033 /// A 128-bit integer vector containing the source operand.
3036 /// in operand \a __a.
3037 /// \returns A 128-bit integer vector containing the right-shifted values.
3043 /// Right-shifts each of 64-bit values in the 128-bit integer vector
3051 /// A 128-bit integer vector containing the source operand.
3053 /// A 128-bit integer vector in which bits [63:0] specify the number of bits
3054 /// to right-shift each value in operand \a __a.
3055 /// \returns A 128-bit integer vector containing the right-shifted values.
3061 /// Compares each of the corresponding 8-bit values of the 128-bit
3071 /// A 128-bit integer vector.
3073 /// A 128-bit integer vector.
3074 /// \returns A 128-bit integer vector containing the comparison results.
3080 /// Compares each of the corresponding 16-bit values of the 128-bit
3090 /// A 128-bit integer vector.
3092 /// A 128-bit integer vector.
3093 /// \returns A 128-bit integer vector containing the comparison results.
3099 /// Compares each of the corresponding 32-bit values of the 128-bit
3109 /// A 128-bit integer vector.
3111 /// A 128-bit integer vector.
3112 /// \returns A 128-bit integer vector containing the comparison results.
3118 /// Compares each of the corresponding signed 8-bit values of the 128-bit
3129 /// A 128-bit integer vector.
3131 /// A 128-bit integer vector.
3132 /// \returns A 128-bit integer vector containing the comparison results.
3135 /* This function always performs a signed comparison, but __v16qi is a char in _mm_cmpgt_epi8()
3141 /// 128-bit integer vectors to determine if the values in the first operand
3151 /// A 128-bit integer vector.
3153 /// A 128-bit integer vector.
3154 /// \returns A 128-bit integer vector containing the comparison results.
3161 /// 128-bit integer vectors to determine if the values in the first operand
3171 /// A 128-bit integer vector.
3173 /// A 128-bit integer vector.
3174 /// \returns A 128-bit integer vector containing the comparison results.
3180 /// Compares each of the corresponding signed 8-bit values of the 128-bit
3191 /// A 128-bit integer vector.
3193 /// A 128-bit integer vector.
3194 /// \returns A 128-bit integer vector containing the comparison results.
3201 /// 128-bit integer vectors to determine if the values in the first operand
3211 /// A 128-bit integer vector.
3213 /// A 128-bit integer vector.
3214 /// \returns A 128-bit integer vector containing the comparison results.
3221 /// 128-bit integer vectors to determine if the values in the first operand
3231 /// A 128-bit integer vector.
3233 /// A 128-bit integer vector.
3234 /// \returns A 128-bit integer vector containing the comparison results.
3241 /// Converts a 64-bit signed integer value from the second operand into a
3242 /// double-precision value and returns it in the lower element of a [2 x
3251 /// A 128-bit vector of [2 x double]. The upper 64 bits of this operand are
3254 /// A 64-bit signed integer operand containing the value to be converted.
3255 /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
3264 /// Converts the first (lower) element of a vector of [2 x double] into a
3267 /// If the converted value does not fit in a 64-bit integer, raises a
3276 /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the
3278 /// \returns A 64-bit signed integer containing the converted value.
3283 /// Converts the first (lower) element of a vector of [2 x double] into a
3286 /// If a converted value does not fit in a 64-bit integer, raises a
3296 /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the
3298 /// \returns A 64-bit signed integer containing the converted value.
3304 /// Converts a vector of [4 x i32] into a vector of [4 x float].
3311 /// A 128-bit integer vector.
3312 /// \returns A 128-bit vector of [4 x float] containing the converted values.
3317 /// Converts a vector of [4 x float] into a vector of [4 x i32].
3319 /// If a converted value does not fit in a 32-bit integer, raises a
3328 /// A 128-bit vector of [4 x float].
3329 /// \returns A 128-bit integer vector of [4 x i32] containing the converted
3335 /// Converts a vector of [4 x float] into four signed truncated (rounded toward
3336 /// zero) 32-bit integers, returned in a vector of [4 x i32].
3338 /// If a converted value does not fit in a 32-bit integer, raises a
3348 /// A 128-bit vector of [4 x float].
3349 /// \returns A 128-bit vector of [4 x i32] containing the converted values.
3354 /// Returns a vector of [4 x i32] where the lowest element is the input
3362 /// A 32-bit signed integer operand.
3363 /// \returns A 128-bit vector of [4 x i32].
3368 /// Returns a vector of [2 x i64] where the lower element is the input
3377 /// A 64-bit signed integer operand containing the value to be converted.
3378 /// \returns A 128-bit vector of [2 x i64] containing the converted value.
3383 /// Moves the least significant 32 bits of a vector of [4 x i32] to a
3391 /// A vector of [4 x i32]. The least significant 32 bits are moved to the
3393 /// \returns A 32-bit signed integer containing the moved value.
3399 /// Moves the least significant 64 bits of a vector of [2 x i64] to a
3407 /// A vector of [2 x i64]. The least significant 64 bits are moved to the
3409 /// \returns A 64-bit signed integer containing the moved value.
3414 /// Moves packed integer values from an aligned 128-bit memory location
3415 /// to elements in a 128-bit integer vector.
3422 /// An aligned pointer to a memory location containing integer values.
3423 /// \returns A 128-bit integer vector containing the moved values.
3429 /// Moves packed integer values from an unaligned 128-bit memory location
3430 /// to elements in a 128-bit integer vector.
3437 /// A pointer to a memory location containing integer values.
3438 /// \returns A 128-bit integer vector containing the moved values.
3447 /// Returns a vector of [2 x i64] where the lower element is taken from
3455 /// A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of
3457 /// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the
3468 /// Generates a 128-bit vector of [4 x i32] with unspecified content.
3476 /// \returns A 128-bit vector of [4 x i32] with unspecified content.
3481 /// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
3486 /// This intrinsic is a utility function and does not correspond to a specific
3490 /// A 64-bit integer value used to initialize the upper 64 bits of the
3493 /// A 64-bit integer value used to initialize the lower 64 bits of the
3495 /// \returns An initialized 128-bit vector of [2 x i64] containing the values
3502 /// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
3507 /// This intrinsic is a utility function and does not correspond to a specific
3511 /// A 64-bit integer value used to initialize the upper 64 bits of the
3514 /// A 64-bit integer value used to initialize the lower 64 bits of the
3516 /// \returns An initialized 128-bit vector of [2 x i64] containing the values
3523 /// Initializes the 32-bit values in a 128-bit vector of [4 x i32] with
3528 /// This intrinsic is a utility function and does not correspond to a specific
3532 /// A 32-bit integer value used to initialize bits [127:96] of the
3535 /// A 32-bit integer value used to initialize bits [95:64] of the destination
3538 /// A 32-bit integer value used to initialize bits [63:32] of the destination
3541 /// A 32-bit integer value used to initialize bits [31:0] of the destination
3543 /// \returns An initialized 128-bit vector of [4 x i32] containing the values
3550 /// Initializes the 16-bit values in a 128-bit vector of [8 x i16] with
3555 /// This intrinsic is a utility function and does not correspond to a specific
3559 /// A 16-bit integer value used to initialize bits [127:112] of the
3562 /// A 16-bit integer value used to initialize bits [111:96] of the
3565 /// A 16-bit integer value used to initialize bits [95:80] of the destination
3568 /// A 16-bit integer value used to initialize bits [79:64] of the destination
3571 /// A 16-bit integer value used to initialize bits [63:48] of the destination
3574 /// A 16-bit integer value used to initialize bits [47:32] of the destination
3577 /// A 16-bit integer value used to initialize bits [31:16] of the destination
3580 /// A 16-bit integer value used to initialize bits [15:0] of the destination
3582 /// \returns An initialized 128-bit vector of [8 x i16] containing the values
3591 /// Initializes the 8-bit values in a 128-bit vector of [16 x i8] with
3596 /// This intrinsic is a utility function and does not correspond to a specific
3631 /// \returns An initialized 128-bit vector of [16 x i8] containing the values
3642 /// Initializes both values in a 128-bit integer vector with the
3647 /// This intrinsic is a utility function and does not correspond to a specific
3653 /// \returns An initialized 128-bit integer vector of [2 x i64] with both
3659 /// Initializes both values in a 128-bit vector of [2 x i64] with the
3664 /// This intrinsic is a utility function and does not correspond to a specific
3668 /// A 64-bit value used to initialize the elements of the destination integer
3670 /// \returns An initialized 128-bit vector of [2 x i64] with all elements
3676 /// Initializes all values in a 128-bit vector of [4 x i32] with the
3681 /// This intrinsic is a utility function and does not correspond to a specific
3685 /// A 32-bit value used to initialize the elements of the destination integer
3687 /// \returns An initialized 128-bit vector of [4 x i32] with all elements
3693 /// Initializes all values in a 128-bit vector of [8 x i16] with the
3698 /// This intrinsic is a utility function and does not correspond to a specific
3702 /// A 16-bit value used to initialize the elements of the destination integer
3704 /// \returns An initialized 128-bit vector of [8 x i16] with all elements
3710 /// Initializes all values in a 128-bit vector of [16 x i8] with the
3715 /// This intrinsic is a utility function and does not correspond to a specific
3721 /// \returns An initialized 128-bit vector of [16 x i8] with all elements
3728 /// Constructs a 128-bit integer vector, initialized in reverse order
3733 /// This intrinsic does not correspond to a specific instruction.
3736 /// A 64-bit integral value used to initialize the lower 64 bits of the
3739 /// A 64-bit integral value used to initialize the upper 64 bits of the
3741 /// \returns An initialized 128-bit integer vector.
3747 /// Constructs a 128-bit integer vector, initialized in reverse order
3752 /// This intrinsic is a utility function and does not correspond to a specific
3756 /// A 32-bit integral value used to initialize bits [31:0] of the result.
3758 /// A 32-bit integral value used to initialize bits [63:32] of the result.
3760 /// A 32-bit integral value used to initialize bits [95:64] of the result.
3762 /// A 32-bit integral value used to initialize bits [127:96] of the result.
3763 /// \returns An initialized 128-bit integer vector.
3770 /// Constructs a 128-bit integer vector, initialized in reverse order
3775 /// This intrinsic is a utility function and does not correspond to a specific
3779 /// A 16-bit integral value used to initialize bits [15:0] of the result.
3781 /// A 16-bit integral value used to initialize bits [31:16] of the result.
3783 /// A 16-bit integral value used to initialize bits [47:32] of the result.
3785 /// A 16-bit integral value used to initialize bits [63:48] of the result.
3787 /// A 16-bit integral value used to initialize bits [79:64] of the result.
3789 /// A 16-bit integral value used to initialize bits [95:80] of the result.
3791 /// A 16-bit integral value used to initialize bits [111:96] of the result.
3793 /// A 16-bit integral value used to initialize bits [127:112] of the result.
3794 /// \returns An initialized 128-bit integer vector.
3801 /// Constructs a 128-bit integer vector, initialized in reverse order
3806 /// This intrinsic is a utility function and does not correspond to a specific
3841 /// \returns An initialized 128-bit integer vector.
3850 /// Creates a 128-bit integer vector initialized to zero.
3856 /// \returns An initialized 128-bit integer vector with all elements set to
3862 /// Stores a 128-bit integer vector to a memory location aligned on a
3863 /// 128-bit boundary.
3870 /// A pointer to an aligned memory location that will receive the integer
3873 /// A 128-bit integer vector containing the values to be moved.
3879 /// Stores a 128-bit integer vector to an unaligned memory location.
3886 /// A pointer to a memory location that will receive the integer values.
3888 /// A 128-bit integer vector containing the values to be moved.
3897 /// Stores a 64-bit integer value from the low element of a 128-bit integer
3905 /// A pointer to a 64-bit memory location. The address of the memory
3908 /// A 128-bit integer vector containing the value to be stored.
3917 /// Stores a 32-bit integer value from the low element of a 128-bit integer
3925 /// A pointer to a 32-bit memory location. The address of the memory
3928 /// A 128-bit integer vector containing the value to be stored.
3937 /// Stores a 16-bit integer value from the low element of a 128-bit integer
3942 /// This intrinsic does not correspond to a specific instruction.
3945 /// A pointer to a 16-bit memory location. The address of the memory
3948 /// A 128-bit integer vector containing the value to be stored.
3958 /// specified unaligned memory location. When a mask bit is 1, the
3971 /// A 128-bit integer vector containing the values to be moved.
3973 /// A 128-bit integer vector containing the mask. The most significant bit of
3976 /// A pointer to an unaligned 128-bit memory location where the specified
3984 /// Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to
3985 /// a memory location.
3992 /// A pointer to a 64-bit memory location that will receive the lower 64 bits
3995 /// A 128-bit integer vector of [2 x i64]. The lower 64 bits contain the
4005 /// Stores a 128-bit floating point vector of [2 x double] to a 128-bit
4016 /// A pointer to the 128-bit aligned memory location used to store the value.
4018 /// A vector of [2 x double] containing the 64-bit values to be stored.
4024 /// Stores a 128-bit integer vector to a 128-bit aligned memory location.
4034 /// A pointer to the 128-bit aligned memory location used to store the value.
4036 /// A 128-bit integer vector containing the values to be stored.
4042 /// Stores a 32-bit integer value in the specified memory location.
4052 /// A pointer to the 32-bit memory location used to store the value.
4054 /// A 32-bit integer containing the value to be stored.
4062 /// Stores a 64-bit integer value in the specified memory location.
4072 /// A pointer to the 64-bit memory location used to store the value.
4074 /// A 64-bit integer containing the value to be stored.
4086 /// The cache line containing \a __p is flushed and invalidated from all
4094 /// A pointer to the memory location used to identify the cache line to be
4124 /// Converts, with saturation, 16-bit signed integers from both 128-bit integer
4136 /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are
4139 /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are
4141 /// \returns A 128-bit vector of [16 x i8] containing the converted values.
4147 /// Converts, with saturation, 32-bit signed integers from both 128-bit integer
4159 /// A 128-bit integer vector of [4 x i32]. The converted [4 x i16] values
4162 /// A 128-bit integer vector of [4 x i32]. The converted [4 x i16] values
4164 /// \returns A 128-bit vector of [8 x i16] containing the converted values.
4170 /// Converts, with saturation, 16-bit signed integers from both 128-bit integer
4182 /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are
4185 /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are
4187 /// \returns A 128-bit vector of [16 x i8] containing the converted values.
4193 /// Extracts 16 bits from a 128-bit integer vector of [8 x i16], using
4194 /// the immediate-value parameter as a selector.
4199 /// __m128i _mm_extract_epi16(__m128i a, const int imm);
4204 /// \param a
4205 /// A 128-bit integer vector.
4207 /// An immediate value. Bits [2:0] selects values from \a a to be assigned
4209 /// 000: assign values from bits [15:0] of \a a. \n
4210 /// 001: assign values from bits [31:16] of \a a. \n
4211 /// 010: assign values from bits [47:32] of \a a. \n
4212 /// 011: assign values from bits [63:48] of \a a. \n
4213 /// 100: assign values from bits [79:64] of \a a. \n
4214 /// 101: assign values from bits [95:80] of \a a. \n
4215 /// 110: assign values from bits [111:96] of \a a. \n
4216 /// 111: assign values from bits [127:112] of \a a.
4217 /// \returns An integer, whose lower 16 bits are selected from the 128-bit
4219 #define _mm_extract_epi16(a, imm) \ argument
4220 ((int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \
4223 /// Constructs a 128-bit integer vector by first making a copy of the
4224 /// 128-bit integer vector parameter, and then inserting the lower 16 bits
4231 /// __m128i _mm_insert_epi16(__m128i a, int b, const int imm);
4236 /// \param a
4237 /// A 128-bit integer vector of [8 x i16]. This vector is copied to the
4239 /// the lower 16 bits of \a b.
4242 /// result beginning at an offset specified by \a imm.
4245 /// lower 16 bits of \a b are written.
4246 /// \returns A 128-bit integer vector containing the constructed values.
4247 #define _mm_insert_epi16(a, b, imm) \ argument
4248 ((__m128i)__builtin_ia32_vec_set_v8hi((__v8hi)(__m128i)(a), (int)(b), \
4252 /// element in a 128-bit integer vector of [16 x i8] to create a 16-bit mask
4260 /// A 128-bit integer vector containing the values with bits to be extracted.
4261 /// \returns The most significant bits from each 8-bit element in \a __a,
4267 /// Constructs a 128-bit integer vector by shuffling four 32-bit
4268 /// elements of a 128-bit integer vector parameter, using the immediate-value
4269 /// parameter as a specifier.
4274 /// __m128i _mm_shuffle_epi32(__m128i a, const int imm);
4279 /// \param a
4280 /// A 128-bit integer vector containing the values to be copied.
4283 /// copy from a. The destinations within the 128-bit destination are assigned
4290 /// 00: assign values from bits [31:0] of \a a. \n
4291 /// 01: assign values from bits [63:32] of \a a. \n
4292 /// 10: assign values from bits [95:64] of \a a. \n
4293 /// 11: assign values from bits [127:96] of \a a. \n
4294 /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro.
4297 /// \returns A 128-bit integer vector containing the shuffled values.
4298 #define _mm_shuffle_epi32(a, imm) \ argument
4299 ((__m128i)__builtin_ia32_pshufd((__v4si)(__m128i)(a), (int)(imm)))
4301 /// Constructs a 128-bit integer vector by shuffling four lower 16-bit
4302 /// elements of a 128-bit integer vector of [8 x i16], using the immediate
4303 /// value parameter as a specifier.
4308 /// __m128i _mm_shufflelo_epi16(__m128i a, const int imm);
4313 /// \param a
4314 /// A 128-bit integer vector of [8 x i16]. Bits [127:64] are copied to bits
4317 /// An 8-bit immediate value specifying which elements to copy from \a a. \n
4323 /// 00: assign values from bits [15:0] of \a a. \n
4324 /// 01: assign values from bits [31:16] of \a a. \n
4325 /// 10: assign values from bits [47:32] of \a a. \n
4326 /// 11: assign values from bits [63:48] of \a a. \n
4327 /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro.
4330 /// \returns A 128-bit integer vector containing the shuffled values.
4331 #define _mm_shufflelo_epi16(a, imm) \ argument
4332 ((__m128i)__builtin_ia32_pshuflw((__v8hi)(__m128i)(a), (int)(imm)))
4334 /// Constructs a 128-bit integer vector by shuffling four upper 16-bit
4335 /// elements of a 128-bit integer vector of [8 x i16], using the immediate
4336 /// value parameter as a specifier.
4341 /// __m128i _mm_shufflehi_epi16(__m128i a, const int imm);
4346 /// \param a
4347 /// A 128-bit integer vector of [8 x i16]. Bits [63:0] are copied to bits
4350 /// An 8-bit immediate value specifying which elements to copy from \a a. \n
4356 /// 00: assign values from bits [79:64] of \a a. \n
4357 /// 01: assign values from bits [95:80] of \a a. \n
4358 /// 10: assign values from bits [111:96] of \a a. \n
4359 /// 11: assign values from bits [127:112] of \a a. \n
4360 /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro.
4363 /// \returns A 128-bit integer vector containing the shuffled values.
4364 #define _mm_shufflehi_epi16(a, imm) \ argument
4365 ((__m128i)__builtin_ia32_pshufhw((__v8hi)(__m128i)(a), (int)(imm)))
4367 /// Unpacks the high-order (index 8-15) values from two 128-bit vectors
4368 /// of [16 x i8] and interleaves them into a 128-bit vector of [16 x i8].
4376 /// A 128-bit vector of [16 x i8].
4386 /// A 128-bit vector of [16 x i8]. \n
4395 /// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
4403 /// Unpacks the high-order (index 4-7) values from two 128-bit vectors of
4404 /// [8 x i16] and interleaves them into a 128-bit vector of [8 x i16].
4412 /// A 128-bit vector of [8 x i16].
4418 /// A 128-bit vector of [8 x i16].
4423 /// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
4430 /// Unpacks the high-order (index 2,3) values from two 128-bit vectors of
4431 /// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32].
4439 /// A 128-bit vector of [4 x i32]. \n
4443 /// A 128-bit vector of [4 x i32]. \n
4446 /// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
4453 /// Unpacks the high-order 64-bit elements from two 128-bit vectors of
4454 /// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64].
4462 /// A 128-bit vector of [2 x i64]. \n
4465 /// A 128-bit vector of [2 x i64]. \n
4467 /// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
4473 /// Unpacks the low-order (index 0-7) values from two 128-bit vectors of
4474 /// [16 x i8] and interleaves them into a 128-bit vector of [16 x i8].
4482 /// A 128-bit vector of [16 x i8]. \n
4492 /// A 128-bit vector of [16 x i8].
4501 /// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
4509 /// Unpacks the low-order (index 0-3) values from each of the two 128-bit
4510 /// vectors of [8 x i16] and interleaves them into a 128-bit vector of
4519 /// A 128-bit vector of [8 x i16].
4525 /// A 128-bit vector of [8 x i16].
4530 /// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
4537 /// Unpacks the low-order (index 0,1) values from two 128-bit vectors of
4538 /// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32].
4546 /// A 128-bit vector of [4 x i32]. \n
4550 /// A 128-bit vector of [4 x i32]. \n
4553 /// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
4560 /// Unpacks the low-order 64-bit elements from two 128-bit vectors of
4561 /// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64].
4569 /// A 128-bit vector of [2 x i64]. \n
4572 /// A 128-bit vector of [2 x i64]. \n
4574 /// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
4580 /// Returns the lower 64 bits of a 128-bit integer vector as a 64-bit
4588 /// A 128-bit integer vector operand. The lower 64 bits are moved to the
4590 /// \returns A 64-bit integer containing the lower 64 bits of the parameter.
4595 /// Moves the 64-bit operand to a 128-bit integer vector, zeroing the
4603 /// A 64-bit value.
4604 /// \returns A 128-bit integer vector. The lower 64 bits contain the value from
4610 /// Moves the lower 64 bits of a 128-bit integer vector to a 128-bit
4618 /// A 128-bit integer vector operand. The lower 64 bits are moved to the
4620 /// \returns A 128-bit integer vector. The lower 64 bits contain the value from
4626 /// Unpacks the high-order 64-bit elements from two 128-bit vectors of
4627 /// [2 x double] and interleaves them into a 128-bit vector of [2 x
4635 /// A 128-bit vector of [2 x double]. \n
4638 /// A 128-bit vector of [2 x double]. \n
4640 /// \returns A 128-bit vector of [2 x double] containing the interleaved values.
4646 /// Unpacks the low-order 64-bit elements from two 128-bit vectors
4647 /// of [2 x double] and interleaves them into a 128-bit vector of [2 x
4655 /// A 128-bit vector of [2 x double]. \n
4658 /// A 128-bit vector of [2 x double]. \n
4660 /// \returns A 128-bit vector of [2 x double] containing the interleaved values.
4666 /// Extracts the sign bits of the double-precision values in the 128-bit
4675 /// A 128-bit vector of [2 x double] containing the values with sign bits to
4677 /// \returns The sign bits from each of the double-precision elements in \a __a,
4683 /// Constructs a 128-bit floating-point vector of [2 x double] from two
4684 /// 128-bit vector parameters of [2 x double], using the immediate-value
4685 /// parameter as a specifier.
4690 /// __m128d _mm_shuffle_pd(__m128d a, __m128d b, const int i);
4695 /// \param a
4696 /// A 128-bit vector of [2 x double].
4698 /// A 128-bit vector of [2 x double].
4701 /// elements to copy from \a a and \a b: \n
4702 /// Bit[0] = 0: lower element of \a a copied to lower element of result. \n
4703 /// Bit[0] = 1: upper element of \a a copied to lower element of result. \n
4704 /// Bit[1] = 0: lower element of \a b copied to upper element of result. \n
4705 /// Bit[1] = 1: upper element of \a b copied to upper element of result. \n
4706 /// Note: To generate a mask, you can use the \c _MM_SHUFFLE2 macro.
4707 /// <c>_MM_SHUFFLE2(b1, b0)</c> can create a 2-bit mask of the form
4709 /// \returns A 128-bit vector of [2 x double] containing the shuffled values.
4710 #define _mm_shuffle_pd(a, b, i) \ argument
4711 ((__m128d)__builtin_ia32_shufpd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
4714 /// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit
4722 /// A 128-bit floating-point vector of [2 x double].
4723 /// \returns A 128-bit floating-point vector of [4 x float] containing the same
4729 /// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit
4737 /// A 128-bit floating-point vector of [2 x double].
4738 /// \returns A 128-bit integer vector containing the same bitwise pattern as the
4744 /// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit
4752 /// A 128-bit floating-point vector of [4 x float].
4753 /// \returns A 128-bit floating-point vector of [2 x double] containing the same
4759 /// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit
4767 /// A 128-bit floating-point vector of [4 x float].
4768 /// \returns A 128-bit integer vector containing the same bitwise pattern as the
4774 /// Casts a 128-bit integer vector into a 128-bit floating-point vector
4782 /// A 128-bit integer vector.
4783 /// \returns A 128-bit floating-point vector of [4 x float] containing the same
4789 /// Casts a 128-bit integer vector into a 128-bit floating-point vector
4797 /// A 128-bit integer vector.
4798 /// \returns A 128-bit floating-point vector of [2 x double] containing the same
4805 /// 128-bit vectors of [2 x double], using the operation specified by the
4809 /// If either value in a comparison is NaN, comparisons that are ordered
4815 /// __m128d _mm_cmp_pd(__m128d a, __m128d b, const int c);
4820 /// \param a
4821 /// A 128-bit vector of [2 x double].
4823 /// A 128-bit vector of [2 x double].
4835 /// \returns A 128-bit vector of [2 x double] containing the comparison results.
4836 #define _mm_cmp_pd(a, b, c) \ argument
4837 ((__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
4841 /// two 128-bit vectors of [2 x double], using the operation specified by the
4845 /// If either value in a comparison is NaN, comparisons that are ordered
4851 /// __m128d _mm_cmp_sd(__m128d a, __m128d b, const int c);
4856 /// \param a
4857 /// A 128-bit vector of [2 x double].
4859 /// A 128-bit vector of [2 x double].
4871 /// \returns A 128-bit vector of [2 x double] containing the comparison results.
4872 #define _mm_cmp_sd(a, b, c) \ argument
4873 ((__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \
4880 /// Indicates that a spin loop is being executed for the purposes of