Skip to content

Commit 0a8d652

Browse files
committed
Add const tests for sse4.1
1 parent 8910ea8 commit 0a8d652

File tree

2 files changed

+46
-44
lines changed

2 files changed

+46
-44
lines changed

crates/core_arch/src/x86/sse41.rs

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,12 +1222,13 @@ unsafe extern "C" {
12221222

12231223
#[cfg(test)]
12241224
mod tests {
1225+
use crate::core_arch::assert_eq_const as assert_eq;
12251226
use crate::core_arch::x86::*;
12261227
use std::mem;
12271228
use stdarch_test::simd_test;
12281229

12291230
#[simd_test(enable = "sse4.1")]
1230-
unsafe fn test_mm_blendv_epi8() {
1231+
const unsafe fn test_mm_blendv_epi8() {
12311232
#[rustfmt::skip]
12321233
let a = _mm_setr_epi8(
12331234
0, 1, 2, 3, 4, 5, 6, 7,
@@ -1250,7 +1251,7 @@ mod tests {
12501251
}
12511252

12521253
#[simd_test(enable = "sse4.1")]
1253-
unsafe fn test_mm_blendv_pd() {
1254+
const unsafe fn test_mm_blendv_pd() {
12541255
let a = _mm_set1_pd(0.0);
12551256
let b = _mm_set1_pd(1.0);
12561257
let mask = transmute(_mm_setr_epi64x(0, -1));
@@ -1260,7 +1261,7 @@ mod tests {
12601261
}
12611262

12621263
#[simd_test(enable = "sse4.1")]
1263-
unsafe fn test_mm_blendv_ps() {
1264+
const unsafe fn test_mm_blendv_ps() {
12641265
let a = _mm_set1_ps(0.0);
12651266
let b = _mm_set1_ps(1.0);
12661267
let mask = transmute(_mm_setr_epi32(0, -1, 0, -1));
@@ -1270,7 +1271,7 @@ mod tests {
12701271
}
12711272

12721273
#[simd_test(enable = "sse4.1")]
1273-
unsafe fn test_mm_blend_pd() {
1274+
const unsafe fn test_mm_blend_pd() {
12741275
let a = _mm_set1_pd(0.0);
12751276
let b = _mm_set1_pd(1.0);
12761277
let r = _mm_blend_pd::<0b10>(a, b);
@@ -1279,7 +1280,7 @@ mod tests {
12791280
}
12801281

12811282
#[simd_test(enable = "sse4.1")]
1282-
unsafe fn test_mm_blend_ps() {
1283+
const unsafe fn test_mm_blend_ps() {
12831284
let a = _mm_set1_ps(0.0);
12841285
let b = _mm_set1_ps(1.0);
12851286
let r = _mm_blend_ps::<0b1010>(a, b);
@@ -1288,7 +1289,7 @@ mod tests {
12881289
}
12891290

12901291
#[simd_test(enable = "sse4.1")]
1291-
unsafe fn test_mm_blend_epi16() {
1292+
const unsafe fn test_mm_blend_epi16() {
12921293
let a = _mm_set1_epi16(0);
12931294
let b = _mm_set1_epi16(1);
12941295
let r = _mm_blend_epi16::<0b1010_1100>(a, b);
@@ -1297,7 +1298,7 @@ mod tests {
12971298
}
12981299

12991300
#[simd_test(enable = "sse4.1")]
1300-
unsafe fn test_mm_extract_ps() {
1301+
const unsafe fn test_mm_extract_ps() {
13011302
let a = _mm_setr_ps(0.0, 1.0, 2.0, 3.0);
13021303
let r: f32 = f32::from_bits(_mm_extract_ps::<1>(a) as u32);
13031304
assert_eq!(r, 1.0);
@@ -1306,7 +1307,7 @@ mod tests {
13061307
}
13071308

13081309
#[simd_test(enable = "sse4.1")]
1309-
unsafe fn test_mm_extract_epi8() {
1310+
const unsafe fn test_mm_extract_epi8() {
13101311
#[rustfmt::skip]
13111312
let a = _mm_setr_epi8(
13121313
-1, 1, 2, 3, 4, 5, 6, 7,
@@ -1319,7 +1320,7 @@ mod tests {
13191320
}
13201321

13211322
#[simd_test(enable = "sse4.1")]
1322-
unsafe fn test_mm_extract_epi32() {
1323+
const unsafe fn test_mm_extract_epi32() {
13231324
let a = _mm_setr_epi32(0, 1, 2, 3);
13241325
let r = _mm_extract_epi32::<1>(a);
13251326
assert_eq!(r, 1);
@@ -1344,7 +1345,7 @@ mod tests {
13441345
}
13451346

13461347
#[simd_test(enable = "sse4.1")]
1347-
unsafe fn test_mm_insert_epi8() {
1348+
const unsafe fn test_mm_insert_epi8() {
13481349
let a = _mm_set1_epi8(0);
13491350
let e = _mm_setr_epi8(0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
13501351
let r = _mm_insert_epi8::<1>(a, 32);
@@ -1355,7 +1356,7 @@ mod tests {
13551356
}
13561357

13571358
#[simd_test(enable = "sse4.1")]
1358-
unsafe fn test_mm_insert_epi32() {
1359+
const unsafe fn test_mm_insert_epi32() {
13591360
let a = _mm_set1_epi32(0);
13601361
let e = _mm_setr_epi32(0, 32, 0, 0);
13611362
let r = _mm_insert_epi32::<1>(a, 32);
@@ -1366,7 +1367,7 @@ mod tests {
13661367
}
13671368

13681369
#[simd_test(enable = "sse4.1")]
1369-
unsafe fn test_mm_max_epi8() {
1370+
const unsafe fn test_mm_max_epi8() {
13701371
#[rustfmt::skip]
13711372
let a = _mm_setr_epi8(
13721373
1, 4, 5, 8, 9, 12, 13, 16,
@@ -1387,7 +1388,7 @@ mod tests {
13871388
}
13881389

13891390
#[simd_test(enable = "sse4.1")]
1390-
unsafe fn test_mm_max_epu16() {
1391+
const unsafe fn test_mm_max_epu16() {
13911392
let a = _mm_setr_epi16(1, 4, 5, 8, 9, 12, 13, 16);
13921393
let b = _mm_setr_epi16(2, 3, 6, 7, 10, 11, 14, 15);
13931394
let r = _mm_max_epu16(a, b);
@@ -1396,7 +1397,7 @@ mod tests {
13961397
}
13971398

13981399
#[simd_test(enable = "sse4.1")]
1399-
unsafe fn test_mm_max_epi32() {
1400+
const unsafe fn test_mm_max_epi32() {
14001401
let a = _mm_setr_epi32(1, 4, 5, 8);
14011402
let b = _mm_setr_epi32(2, 3, 6, 7);
14021403
let r = _mm_max_epi32(a, b);
@@ -1405,7 +1406,7 @@ mod tests {
14051406
}
14061407

14071408
#[simd_test(enable = "sse4.1")]
1408-
unsafe fn test_mm_max_epu32() {
1409+
const unsafe fn test_mm_max_epu32() {
14091410
let a = _mm_setr_epi32(1, 4, 5, 8);
14101411
let b = _mm_setr_epi32(2, 3, 6, 7);
14111412
let r = _mm_max_epu32(a, b);
@@ -1414,7 +1415,7 @@ mod tests {
14141415
}
14151416

14161417
#[simd_test(enable = "sse4.1")]
1417-
unsafe fn test_mm_min_epi8() {
1418+
const unsafe fn test_mm_min_epi8() {
14181419
#[rustfmt::skip]
14191420
let a = _mm_setr_epi8(
14201421
1, 4, 5, 8, 9, 12, 13, 16,
@@ -1453,7 +1454,7 @@ mod tests {
14531454
}
14541455

14551456
#[simd_test(enable = "sse4.1")]
1456-
unsafe fn test_mm_min_epu16() {
1457+
const unsafe fn test_mm_min_epu16() {
14571458
let a = _mm_setr_epi16(1, 4, 5, 8, 9, 12, 13, 16);
14581459
let b = _mm_setr_epi16(2, 3, 6, 7, 10, 11, 14, 15);
14591460
let r = _mm_min_epu16(a, b);
@@ -1462,7 +1463,7 @@ mod tests {
14621463
}
14631464

14641465
#[simd_test(enable = "sse4.1")]
1465-
unsafe fn test_mm_min_epi32() {
1466+
const unsafe fn test_mm_min_epi32() {
14661467
let a = _mm_setr_epi32(1, 4, 5, 8);
14671468
let b = _mm_setr_epi32(2, 3, 6, 7);
14681469
let r = _mm_min_epi32(a, b);
@@ -1477,7 +1478,7 @@ mod tests {
14771478
}
14781479

14791480
#[simd_test(enable = "sse4.1")]
1480-
unsafe fn test_mm_min_epu32() {
1481+
const unsafe fn test_mm_min_epu32() {
14811482
let a = _mm_setr_epi32(1, 4, 5, 8);
14821483
let b = _mm_setr_epi32(2, 3, 6, 7);
14831484
let r = _mm_min_epu32(a, b);
@@ -1495,7 +1496,7 @@ mod tests {
14951496
}
14961497

14971498
#[simd_test(enable = "sse4.1")]
1498-
unsafe fn test_mm_cmpeq_epi64() {
1499+
const unsafe fn test_mm_cmpeq_epi64() {
14991500
let a = _mm_setr_epi64x(0, 1);
15001501
let b = _mm_setr_epi64x(0, 0);
15011502
let r = _mm_cmpeq_epi64(a, b);
@@ -1504,7 +1505,7 @@ mod tests {
15041505
}
15051506

15061507
#[simd_test(enable = "sse4.1")]
1507-
unsafe fn test_mm_cvtepi8_epi16() {
1508+
const unsafe fn test_mm_cvtepi8_epi16() {
15081509
let a = _mm_set1_epi8(10);
15091510
let r = _mm_cvtepi8_epi16(a);
15101511
let e = _mm_set1_epi16(10);
@@ -1516,7 +1517,7 @@ mod tests {
15161517
}
15171518

15181519
#[simd_test(enable = "sse4.1")]
1519-
unsafe fn test_mm_cvtepi8_epi32() {
1520+
const unsafe fn test_mm_cvtepi8_epi32() {
15201521
let a = _mm_set1_epi8(10);
15211522
let r = _mm_cvtepi8_epi32(a);
15221523
let e = _mm_set1_epi32(10);
@@ -1528,7 +1529,7 @@ mod tests {
15281529
}
15291530

15301531
#[simd_test(enable = "sse4.1")]
1531-
unsafe fn test_mm_cvtepi8_epi64() {
1532+
const unsafe fn test_mm_cvtepi8_epi64() {
15321533
let a = _mm_set1_epi8(10);
15331534
let r = _mm_cvtepi8_epi64(a);
15341535
let e = _mm_set1_epi64x(10);
@@ -1540,7 +1541,7 @@ mod tests {
15401541
}
15411542

15421543
#[simd_test(enable = "sse4.1")]
1543-
unsafe fn test_mm_cvtepi16_epi32() {
1544+
const unsafe fn test_mm_cvtepi16_epi32() {
15441545
let a = _mm_set1_epi16(10);
15451546
let r = _mm_cvtepi16_epi32(a);
15461547
let e = _mm_set1_epi32(10);
@@ -1552,7 +1553,7 @@ mod tests {
15521553
}
15531554

15541555
#[simd_test(enable = "sse4.1")]
1555-
unsafe fn test_mm_cvtepi16_epi64() {
1556+
const unsafe fn test_mm_cvtepi16_epi64() {
15561557
let a = _mm_set1_epi16(10);
15571558
let r = _mm_cvtepi16_epi64(a);
15581559
let e = _mm_set1_epi64x(10);
@@ -1564,7 +1565,7 @@ mod tests {
15641565
}
15651566

15661567
#[simd_test(enable = "sse4.1")]
1567-
unsafe fn test_mm_cvtepi32_epi64() {
1568+
const unsafe fn test_mm_cvtepi32_epi64() {
15681569
let a = _mm_set1_epi32(10);
15691570
let r = _mm_cvtepi32_epi64(a);
15701571
let e = _mm_set1_epi64x(10);
@@ -1576,47 +1577,47 @@ mod tests {
15761577
}
15771578

15781579
#[simd_test(enable = "sse4.1")]
1579-
unsafe fn test_mm_cvtepu8_epi16() {
1580+
const unsafe fn test_mm_cvtepu8_epi16() {
15801581
let a = _mm_set1_epi8(10);
15811582
let r = _mm_cvtepu8_epi16(a);
15821583
let e = _mm_set1_epi16(10);
15831584
assert_eq_m128i(r, e);
15841585
}
15851586

15861587
#[simd_test(enable = "sse4.1")]
1587-
unsafe fn test_mm_cvtepu8_epi32() {
1588+
const unsafe fn test_mm_cvtepu8_epi32() {
15881589
let a = _mm_set1_epi8(10);
15891590
let r = _mm_cvtepu8_epi32(a);
15901591
let e = _mm_set1_epi32(10);
15911592
assert_eq_m128i(r, e);
15921593
}
15931594

15941595
#[simd_test(enable = "sse4.1")]
1595-
unsafe fn test_mm_cvtepu8_epi64() {
1596+
const unsafe fn test_mm_cvtepu8_epi64() {
15961597
let a = _mm_set1_epi8(10);
15971598
let r = _mm_cvtepu8_epi64(a);
15981599
let e = _mm_set1_epi64x(10);
15991600
assert_eq_m128i(r, e);
16001601
}
16011602

16021603
#[simd_test(enable = "sse4.1")]
1603-
unsafe fn test_mm_cvtepu16_epi32() {
1604+
const unsafe fn test_mm_cvtepu16_epi32() {
16041605
let a = _mm_set1_epi16(10);
16051606
let r = _mm_cvtepu16_epi32(a);
16061607
let e = _mm_set1_epi32(10);
16071608
assert_eq_m128i(r, e);
16081609
}
16091610

16101611
#[simd_test(enable = "sse4.1")]
1611-
unsafe fn test_mm_cvtepu16_epi64() {
1612+
const unsafe fn test_mm_cvtepu16_epi64() {
16121613
let a = _mm_set1_epi16(10);
16131614
let r = _mm_cvtepu16_epi64(a);
16141615
let e = _mm_set1_epi64x(10);
16151616
assert_eq_m128i(r, e);
16161617
}
16171618

16181619
#[simd_test(enable = "sse4.1")]
1619-
unsafe fn test_mm_cvtepu32_epi64() {
1620+
const unsafe fn test_mm_cvtepu32_epi64() {
16201621
let a = _mm_set1_epi32(10);
16211622
let r = _mm_cvtepu32_epi64(a);
16221623
let e = _mm_set1_epi64x(10);
@@ -1640,15 +1641,15 @@ mod tests {
16401641
}
16411642

16421643
#[simd_test(enable = "sse4.1")]
1643-
unsafe fn test_mm_floor_pd() {
1644+
const unsafe fn test_mm_floor_pd() {
16441645
let a = _mm_setr_pd(2.5, 4.5);
16451646
let r = _mm_floor_pd(a);
16461647
let e = _mm_setr_pd(2.0, 4.0);
16471648
assert_eq_m128d(r, e);
16481649
}
16491650

16501651
#[simd_test(enable = "sse4.1")]
1651-
unsafe fn test_mm_floor_ps() {
1652+
const unsafe fn test_mm_floor_ps() {
16521653
let a = _mm_setr_ps(2.5, 4.5, 8.5, 16.5);
16531654
let r = _mm_floor_ps(a);
16541655
let e = _mm_setr_ps(2.0, 4.0, 8.0, 16.0);
@@ -1674,15 +1675,15 @@ mod tests {
16741675
}
16751676

16761677
#[simd_test(enable = "sse4.1")]
1677-
unsafe fn test_mm_ceil_pd() {
1678+
const unsafe fn test_mm_ceil_pd() {
16781679
let a = _mm_setr_pd(1.5, 3.5);
16791680
let r = _mm_ceil_pd(a);
16801681
let e = _mm_setr_pd(2.0, 4.0);
16811682
assert_eq_m128d(r, e);
16821683
}
16831684

16841685
#[simd_test(enable = "sse4.1")]
1685-
unsafe fn test_mm_ceil_ps() {
1686+
const unsafe fn test_mm_ceil_ps() {
16861687
let a = _mm_setr_ps(1.5, 3.5, 7.5, 15.5);
16871688
let r = _mm_ceil_ps(a);
16881689
let e = _mm_setr_ps(2.0, 4.0, 8.0, 16.0);
@@ -1803,7 +1804,7 @@ mod tests {
18031804
}
18041805

18051806
#[simd_test(enable = "sse4.1")]
1806-
unsafe fn test_mm_mul_epi32() {
1807+
const unsafe fn test_mm_mul_epi32() {
18071808
{
18081809
let a = _mm_setr_epi32(1, 1, 1, 1);
18091810
let b = _mm_setr_epi32(1, 2, 3, 4);
@@ -1824,7 +1825,7 @@ mod tests {
18241825
}
18251826

18261827
#[simd_test(enable = "sse4.1")]
1827-
unsafe fn test_mm_mullo_epi32() {
1828+
const unsafe fn test_mm_mullo_epi32() {
18281829
{
18291830
let a = _mm_setr_epi32(1, 1, 1, 1);
18301831
let b = _mm_setr_epi32(1, 2, 3, 4);
@@ -1882,7 +1883,7 @@ mod tests {
18821883
}
18831884

18841885
#[simd_test(enable = "sse4.1")]
1885-
unsafe fn test_mm_testz_si128() {
1886+
const unsafe fn test_mm_testz_si128() {
18861887
let a = _mm_set1_epi8(1);
18871888
let mask = _mm_set1_epi8(0);
18881889
let r = _mm_testz_si128(a, mask);
@@ -1898,7 +1899,7 @@ mod tests {
18981899
}
18991900

19001901
#[simd_test(enable = "sse4.1")]
1901-
unsafe fn test_mm_testc_si128() {
1902+
const unsafe fn test_mm_testc_si128() {
19021903
let a = _mm_set1_epi8(-1);
19031904
let mask = _mm_set1_epi8(0);
19041905
let r = _mm_testc_si128(a, mask);
@@ -1934,7 +1935,7 @@ mod tests {
19341935
}
19351936

19361937
#[simd_test(enable = "sse4.1")]
1937-
unsafe fn test_mm_test_all_zeros() {
1938+
const unsafe fn test_mm_test_all_zeros() {
19381939
let a = _mm_set1_epi8(1);
19391940
let mask = _mm_set1_epi8(0);
19401941
let r = _mm_test_all_zeros(a, mask);
@@ -1950,7 +1951,7 @@ mod tests {
19501951
}
19511952

19521953
#[simd_test(enable = "sse4.1")]
1953-
unsafe fn test_mm_test_all_ones() {
1954+
const unsafe fn test_mm_test_all_ones() {
19541955
let a = _mm_set1_epi8(-1);
19551956
let r = _mm_test_all_ones(a);
19561957
assert_eq!(r, 1);

0 commit comments

Comments
 (0)