@@ -86,8 +86,8 @@ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
86
86
// / \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
87
87
// / sum of the lower 64 bits of both operands. The upper 64 bits are copied
88
88
// / from the upper 64 bits of the first source operand.
89
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_sd (__m128d __a,
90
- __m128d __b) {
89
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_sd (__m128d __a,
90
+ __m128d __b) {
91
91
__a[0 ] += __b[0 ];
92
92
return __a;
93
93
}
@@ -104,8 +104,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_sd(__m128d __a,
104
104
// / A 128-bit vector of [2 x double] containing one of the source operands.
105
105
// / \returns A 128-bit vector of [2 x double] containing the sums of both
106
106
// / operands.
107
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_pd (__m128d __a,
108
- __m128d __b) {
107
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_pd (__m128d __a,
108
+ __m128d __b) {
109
109
return (__m128d)((__v2df)__a + (__v2df)__b);
110
110
}
111
111
@@ -126,8 +126,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_pd(__m128d __a,
126
126
// / \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
127
127
// / difference of the lower 64 bits of both operands. The upper 64 bits are
128
128
// / copied from the upper 64 bits of the first source operand.
129
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_sd (__m128d __a,
130
- __m128d __b) {
129
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_sd (__m128d __a,
130
+ __m128d __b) {
131
131
__a[0 ] -= __b[0 ];
132
132
return __a;
133
133
}
@@ -144,8 +144,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_sd(__m128d __a,
144
144
// / A 128-bit vector of [2 x double] containing the subtrahend.
145
145
// / \returns A 128-bit vector of [2 x double] containing the differences between
146
146
// / both operands.
147
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_pd (__m128d __a,
148
- __m128d __b) {
147
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_pd (__m128d __a,
148
+ __m128d __b) {
149
149
return (__m128d)((__v2df)__a - (__v2df)__b);
150
150
}
151
151
@@ -165,8 +165,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_pd(__m128d __a,
165
165
// / \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
166
166
// / product of the lower 64 bits of both operands. The upper 64 bits are
167
167
// / copied from the upper 64 bits of the first source operand.
168
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_sd (__m128d __a,
169
- __m128d __b) {
168
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_sd (__m128d __a,
169
+ __m128d __b) {
170
170
__a[0 ] *= __b[0 ];
171
171
return __a;
172
172
}
@@ -183,8 +183,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_sd(__m128d __a,
183
183
// / A 128-bit vector of [2 x double] containing one of the operands.
184
184
// / \returns A 128-bit vector of [2 x double] containing the products of both
185
185
// / operands.
186
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_pd (__m128d __a,
187
- __m128d __b) {
186
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_pd (__m128d __a,
187
+ __m128d __b) {
188
188
return (__m128d)((__v2df)__a * (__v2df)__b);
189
189
}
190
190
@@ -205,8 +205,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_pd(__m128d __a,
205
205
// / \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
206
206
// / quotient of the lower 64 bits of both operands. The upper 64 bits are
207
207
// / copied from the upper 64 bits of the first source operand.
208
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_sd (__m128d __a,
209
- __m128d __b) {
208
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_sd (__m128d __a,
209
+ __m128d __b) {
210
210
__a[0 ] /= __b[0 ];
211
211
return __a;
212
212
}
@@ -224,8 +224,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_sd(__m128d __a,
224
224
// / A 128-bit vector of [2 x double] containing the divisor.
225
225
// / \returns A 128-bit vector of [2 x double] containing the quotients of both
226
226
// / operands.
227
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_pd (__m128d __a,
228
- __m128d __b) {
227
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_pd (__m128d __a,
228
+ __m128d __b) {
229
229
return (__m128d)((__v2df)__a / (__v2df)__b);
230
230
}
231
231
@@ -373,8 +373,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_pd(__m128d __a,
373
373
// / A 128-bit vector of [2 x double] containing one of the source operands.
374
374
// / \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
375
375
// / values between both operands.
376
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_and_pd (__m128d __a,
377
- __m128d __b) {
376
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_and_pd (__m128d __a,
377
+ __m128d __b) {
378
378
return (__m128d)((__v2du)__a & (__v2du)__b);
379
379
}
380
380
@@ -393,8 +393,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_and_pd(__m128d __a,
393
393
// / \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
394
394
// / values in the second operand and the one's complement of the first
395
395
// / operand.
396
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_andnot_pd (__m128d __a,
397
- __m128d __b) {
396
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
397
+ _mm_andnot_pd (__m128d __a, __m128d __b) {
398
398
return (__m128d)(~(__v2du)__a & (__v2du)__b);
399
399
}
400
400
@@ -410,8 +410,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_andnot_pd(__m128d __a,
410
410
// / A 128-bit vector of [2 x double] containing one of the source operands.
411
411
// / \returns A 128-bit vector of [2 x double] containing the bitwise OR of the
412
412
// / values between both operands.
413
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_or_pd (__m128d __a,
414
- __m128d __b) {
413
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_or_pd (__m128d __a,
414
+ __m128d __b) {
415
415
return (__m128d)((__v2du)__a | (__v2du)__b);
416
416
}
417
417
@@ -427,8 +427,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_or_pd(__m128d __a,
427
427
// / A 128-bit vector of [2 x double] containing one of the source operands.
428
428
// / \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the
429
429
// / values between both operands.
430
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_xor_pd (__m128d __a,
431
- __m128d __b) {
430
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_xor_pd (__m128d __a,
431
+ __m128d __b) {
432
432
return (__m128d)((__v2du)__a ^ (__v2du)__b);
433
433
}
434
434
@@ -1306,7 +1306,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpd_ps(__m128d __a) {
1306
1306
// / floating-point elements are converted to double-precision values. The
1307
1307
// / upper two elements are unused.
1308
1308
// / \returns A 128-bit vector of [2 x double] containing the converted values.
1309
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtps_pd (__m128 __a) {
1309
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1310
+ _mm_cvtps_pd (__m128 __a) {
1310
1311
return (__m128d) __builtin_convertvector (
1311
1312
__builtin_shufflevector ((__v4sf)__a, (__v4sf)__a, 0 , 1 ), __v2df);
1312
1313
}
@@ -1327,7 +1328,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtps_pd(__m128 __a) {
1327
1328
// /
1328
1329
// / The upper two elements are unused.
1329
1330
// / \returns A 128-bit vector of [2 x double] containing the converted values.
1330
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtepi32_pd (__m128i __a) {
1331
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1332
+ _mm_cvtepi32_pd (__m128i __a) {
1331
1333
return (__m128d) __builtin_convertvector (
1332
1334
__builtin_shufflevector ((__v4si)__a, (__v4si)__a, 0 , 1 ), __v2df);
1333
1335
}
@@ -1413,8 +1415,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtsd_ss(__m128 __a,
1413
1415
// / \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
1414
1416
// / converted value from the second parameter. The upper 64 bits are copied
1415
1417
// / from the upper 64 bits of the first parameter.
1416
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtsi32_sd (__m128d __a,
1417
- int __b) {
1418
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1419
+ _mm_cvtsi32_sd (__m128d __a, int __b) {
1418
1420
__a[0 ] = __b;
1419
1421
return __a;
1420
1422
}
@@ -1438,8 +1440,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtsi32_sd(__m128d __a,
1438
1440
// / \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
1439
1441
// / converted value from the second parameter. The upper 64 bits are copied
1440
1442
// / from the upper 64 bits of the first parameter.
1441
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtss_sd (__m128d __a,
1442
- __m128 __b) {
1443
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1444
+ _mm_cvtss_sd (__m128d __a, __m128 __b) {
1443
1445
__a[0 ] = __b[0 ];
1444
1446
return __a;
1445
1447
}
@@ -1535,7 +1537,8 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvttpd_pi32(__m128d __a) {
1535
1537
// / \param __a
1536
1538
// / A 64-bit vector of [2 x i32].
1537
1539
// / \returns A 128-bit vector of [2 x double] containing the converted values.
1538
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtpi32_pd (__m64 __a) {
1540
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1541
+ _mm_cvtpi32_pd (__m64 __a) {
1539
1542
return (__m128d) __builtin_convertvector ((__v2si)__a, __v2df);
1540
1543
}
1541
1544
@@ -1550,7 +1553,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtpi32_pd(__m64 __a) {
1550
1553
// / A 128-bit vector of [2 x double]. The lower 64 bits are returned.
1551
1554
// / \returns A double-precision floating-point value copied from the lower 64
1552
1555
// / bits of \a __a.
1553
- static __inline__ double __DEFAULT_FN_ATTRS _mm_cvtsd_f64 (__m128d __a) {
1556
+ static __inline__ double __DEFAULT_FN_ATTRS_CONSTEXPR
1557
+ _mm_cvtsd_f64 (__m128d __a) {
1554
1558
return __a[0 ];
1555
1559
}
1556
1560
@@ -1785,7 +1789,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_undefined_pd(void) {
1785
1789
// / \returns An initialized 128-bit floating-point vector of [2 x double]. The
1786
1790
// / lower 64 bits contain the value of the parameter. The upper 64 bits are
1787
1791
// / set to zero.
1788
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_sd (double __w) {
1792
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_sd (double __w) {
1789
1793
return __extension__ (__m128d){__w, 0.0 };
1790
1794
}
1791
1795
@@ -1801,7 +1805,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_sd(double __w) {
1801
1805
// / A double-precision floating-point value used to initialize each vector
1802
1806
// / element of the result.
1803
1807
// / \returns An initialized 128-bit floating-point vector of [2 x double].
1804
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set1_pd (double __w) {
1808
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_pd (double __w) {
1805
1809
return __extension__ (__m128d){__w, __w};
1806
1810
}
1807
1811
@@ -1817,7 +1821,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set1_pd(double __w) {
1817
1821
// / A double-precision floating-point value used to initialize each vector
1818
1822
// / element of the result.
1819
1823
// / \returns An initialized 128-bit floating-point vector of [2 x double].
1820
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd1 (double __w) {
1824
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_pd1 (double __w) {
1821
1825
return _mm_set1_pd (__w);
1822
1826
}
1823
1827
@@ -1835,8 +1839,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd1(double __w) {
1835
1839
// / A double-precision floating-point value used to initialize the lower 64
1836
1840
// / bits of the result.
1837
1841
// / \returns An initialized 128-bit floating-point vector of [2 x double].
1838
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd (double __w,
1839
- double __x) {
1842
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_pd (double __w,
1843
+ double __x) {
1840
1844
return __extension__ (__m128d){__x, __w};
1841
1845
}
1842
1846
@@ -1855,8 +1859,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd(double __w,
1855
1859
// / A double-precision floating-point value used to initialize the upper 64
1856
1860
// / bits of the result.
1857
1861
// / \returns An initialized 128-bit floating-point vector of [2 x double].
1858
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setr_pd (double __w,
1859
- double __x) {
1862
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_pd (double __w,
1863
+ double __x) {
1860
1864
return __extension__ (__m128d){__w, __x};
1861
1865
}
1862
1866
@@ -1888,8 +1892,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_pd(void) {
1888
1892
// / A 128-bit vector of [2 x double]. The lower 64 bits are written to the
1889
1893
// / lower 64 bits of the result.
1890
1894
// / \returns A 128-bit vector of [2 x double] containing the moved values.
1891
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_move_sd (__m128d __a,
1892
- __m128d __b) {
1895
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1896
+ _mm_move_sd (__m128d __a, __m128d __b) {
1893
1897
__a[0 ] = __b[0 ];
1894
1898
return __a;
1895
1899
}
@@ -3323,7 +3327,8 @@ static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvttsd_si64(__m128d __a) {
3323
3327
// / \param __a
3324
3328
// / A 128-bit integer vector.
3325
3329
// / \returns A 128-bit vector of [4 x float] containing the converted values.
3326
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtepi32_ps (__m128i __a) {
3330
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
3331
+ _mm_cvtepi32_ps (__m128i __a) {
3327
3332
return (__m128) __builtin_convertvector ((__v4si)__a, __v4sf);
3328
3333
}
3329
3334
@@ -4651,8 +4656,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_move_epi64(__m128i __a) {
4651
4656
// / A 128-bit vector of [2 x double]. \n
4652
4657
// / Bits [127:64] are written to bits [127:64] of the destination.
4653
4658
// / \returns A 128-bit vector of [2 x double] containing the interleaved values.
4654
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpackhi_pd (__m128d __a,
4655
- __m128d __b) {
4659
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
4660
+ _mm_unpackhi_pd (__m128d __a, __m128d __b) {
4656
4661
return __builtin_shufflevector ((__v2df)__a, (__v2df)__b, 1 , 2 + 1 );
4657
4662
}
4658
4663
@@ -4671,8 +4676,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpackhi_pd(__m128d __a,
4671
4676
// / A 128-bit vector of [2 x double]. \n
4672
4677
// / Bits [63:0] are written to bits [127:64] of the destination.
4673
4678
// / \returns A 128-bit vector of [2 x double] containing the interleaved values.
4674
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpacklo_pd (__m128d __a,
4675
- __m128d __b) {
4679
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
4680
+ _mm_unpacklo_pd (__m128d __a, __m128d __b) {
4676
4681
return __builtin_shufflevector ((__v2df)__a, (__v2df)__b, 0 , 2 + 0 );
4677
4682
}
4678
4683
@@ -4735,7 +4740,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pd(__m128d __a) {
4735
4740
// / A 128-bit floating-point vector of [2 x double].
4736
4741
// / \returns A 128-bit floating-point vector of [4 x float] containing the same
4737
4742
// / bitwise pattern as the parameter.
4738
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_castpd_ps (__m128d __a) {
4743
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
4744
+ _mm_castpd_ps (__m128d __a) {
4739
4745
return (__m128)__a;
4740
4746
}
4741
4747
@@ -4750,7 +4756,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_castpd_ps(__m128d __a) {
4750
4756
// / A 128-bit floating-point vector of [2 x double].
4751
4757
// / \returns A 128-bit integer vector containing the same bitwise pattern as the
4752
4758
// / parameter.
4753
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_castpd_si128 (__m128d __a) {
4759
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4760
+ _mm_castpd_si128 (__m128d __a) {
4754
4761
return (__m128i)__a;
4755
4762
}
4756
4763
0 commit comments