Skip to content

Commit f831ff2

Browse files
committed
Make avx512cd functions const
1 parent 58f7a92 commit f831ff2

File tree

1 file changed

+48
-24
lines changed

1 file changed

+48
-24
lines changed

crates/core_arch/src/x86/avx512cd.rs

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ use stdarch_test::assert_instr;
1111
#[target_feature(enable = "avx512cd")]
1212
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
1313
#[cfg_attr(test, assert_instr(vpbroadcast))] // should be vpbroadcastmw2d
14-
pub fn _mm512_broadcastmw_epi32(k: __mmask16) -> __m512i {
14+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
15+
pub const fn _mm512_broadcastmw_epi32(k: __mmask16) -> __m512i {
1516
_mm512_set1_epi32(k as i32)
1617
}
1718

@@ -22,7 +23,8 @@ pub fn _mm512_broadcastmw_epi32(k: __mmask16) -> __m512i {
2223
#[target_feature(enable = "avx512cd,avx512vl")]
2324
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
2425
#[cfg_attr(test, assert_instr(vpbroadcast))] // should be vpbroadcastmw2d
25-
pub fn _mm256_broadcastmw_epi32(k: __mmask16) -> __m256i {
26+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
27+
pub const fn _mm256_broadcastmw_epi32(k: __mmask16) -> __m256i {
2628
_mm256_set1_epi32(k as i32)
2729
}
2830

@@ -33,7 +35,8 @@ pub fn _mm256_broadcastmw_epi32(k: __mmask16) -> __m256i {
3335
#[target_feature(enable = "avx512cd,avx512vl")]
3436
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
3537
#[cfg_attr(test, assert_instr(vpbroadcast))] // should be vpbroadcastmw2d
36-
pub fn _mm_broadcastmw_epi32(k: __mmask16) -> __m128i {
38+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
39+
pub const fn _mm_broadcastmw_epi32(k: __mmask16) -> __m128i {
3740
_mm_set1_epi32(k as i32)
3841
}
3942

@@ -44,7 +47,8 @@ pub fn _mm_broadcastmw_epi32(k: __mmask16) -> __m128i {
4447
#[target_feature(enable = "avx512cd")]
4548
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
4649
#[cfg_attr(test, assert_instr(vpbroadcast))] // should be vpbroadcastmb2q
47-
pub fn _mm512_broadcastmb_epi64(k: __mmask8) -> __m512i {
50+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
51+
pub const fn _mm512_broadcastmb_epi64(k: __mmask8) -> __m512i {
4852
_mm512_set1_epi64(k as i64)
4953
}
5054

@@ -55,7 +59,8 @@ pub fn _mm512_broadcastmb_epi64(k: __mmask8) -> __m512i {
5559
#[target_feature(enable = "avx512cd,avx512vl")]
5660
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
5761
#[cfg_attr(test, assert_instr(vpbroadcast))] // should be vpbroadcastmb2q
58-
pub fn _mm256_broadcastmb_epi64(k: __mmask8) -> __m256i {
62+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
63+
pub const fn _mm256_broadcastmb_epi64(k: __mmask8) -> __m256i {
5964
_mm256_set1_epi64x(k as i64)
6065
}
6166

@@ -66,7 +71,8 @@ pub fn _mm256_broadcastmb_epi64(k: __mmask8) -> __m256i {
6671
#[target_feature(enable = "avx512cd,avx512vl")]
6772
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
6873
#[cfg_attr(test, assert_instr(vpbroadcast))] // should be vpbroadcastmb2q
69-
pub fn _mm_broadcastmb_epi64(k: __mmask8) -> __m128i {
74+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
75+
pub const fn _mm_broadcastmb_epi64(k: __mmask8) -> __m128i {
7076
_mm_set1_epi64x(k as i64)
7177
}
7278

@@ -311,7 +317,8 @@ pub fn _mm_maskz_conflict_epi64(k: __mmask8, a: __m128i) -> __m128i {
311317
#[target_feature(enable = "avx512cd")]
312318
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
313319
#[cfg_attr(test, assert_instr(vplzcntd))]
314-
pub fn _mm512_lzcnt_epi32(a: __m512i) -> __m512i {
320+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
321+
pub const fn _mm512_lzcnt_epi32(a: __m512i) -> __m512i {
315322
unsafe { transmute(simd_ctlz(a.as_i32x16())) }
316323
}
317324

@@ -322,7 +329,8 @@ pub fn _mm512_lzcnt_epi32(a: __m512i) -> __m512i {
322329
#[target_feature(enable = "avx512cd")]
323330
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
324331
#[cfg_attr(test, assert_instr(vplzcntd))]
325-
pub fn _mm512_mask_lzcnt_epi32(src: __m512i, k: __mmask16, a: __m512i) -> __m512i {
332+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
333+
pub const fn _mm512_mask_lzcnt_epi32(src: __m512i, k: __mmask16, a: __m512i) -> __m512i {
326334
unsafe {
327335
let zerocount = _mm512_lzcnt_epi32(a).as_i32x16();
328336
transmute(simd_select_bitmask(k, zerocount, src.as_i32x16()))
@@ -336,7 +344,8 @@ pub fn _mm512_mask_lzcnt_epi32(src: __m512i, k: __mmask16, a: __m512i) -> __m512
336344
#[target_feature(enable = "avx512cd")]
337345
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
338346
#[cfg_attr(test, assert_instr(vplzcntd))]
339-
pub fn _mm512_maskz_lzcnt_epi32(k: __mmask16, a: __m512i) -> __m512i {
347+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
348+
pub const fn _mm512_maskz_lzcnt_epi32(k: __mmask16, a: __m512i) -> __m512i {
340349
unsafe {
341350
let zerocount = _mm512_lzcnt_epi32(a).as_i32x16();
342351
transmute(simd_select_bitmask(k, zerocount, i32x16::ZERO))
@@ -350,7 +359,8 @@ pub fn _mm512_maskz_lzcnt_epi32(k: __mmask16, a: __m512i) -> __m512i {
350359
#[target_feature(enable = "avx512cd,avx512vl")]
351360
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
352361
#[cfg_attr(test, assert_instr(vplzcntd))]
353-
pub fn _mm256_lzcnt_epi32(a: __m256i) -> __m256i {
362+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
363+
pub const fn _mm256_lzcnt_epi32(a: __m256i) -> __m256i {
354364
unsafe { transmute(simd_ctlz(a.as_i32x8())) }
355365
}
356366

@@ -361,7 +371,8 @@ pub fn _mm256_lzcnt_epi32(a: __m256i) -> __m256i {
361371
#[target_feature(enable = "avx512cd,avx512vl")]
362372
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
363373
#[cfg_attr(test, assert_instr(vplzcntd))]
364-
pub fn _mm256_mask_lzcnt_epi32(src: __m256i, k: __mmask8, a: __m256i) -> __m256i {
374+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
375+
pub const fn _mm256_mask_lzcnt_epi32(src: __m256i, k: __mmask8, a: __m256i) -> __m256i {
365376
unsafe {
366377
let zerocount = _mm256_lzcnt_epi32(a).as_i32x8();
367378
transmute(simd_select_bitmask(k, zerocount, src.as_i32x8()))
@@ -375,7 +386,8 @@ pub fn _mm256_mask_lzcnt_epi32(src: __m256i, k: __mmask8, a: __m256i) -> __m256i
375386
#[target_feature(enable = "avx512cd,avx512vl")]
376387
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
377388
#[cfg_attr(test, assert_instr(vplzcntd))]
378-
pub fn _mm256_maskz_lzcnt_epi32(k: __mmask8, a: __m256i) -> __m256i {
389+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
390+
pub const fn _mm256_maskz_lzcnt_epi32(k: __mmask8, a: __m256i) -> __m256i {
379391
unsafe {
380392
let zerocount = _mm256_lzcnt_epi32(a).as_i32x8();
381393
transmute(simd_select_bitmask(k, zerocount, i32x8::ZERO))
@@ -389,7 +401,8 @@ pub fn _mm256_maskz_lzcnt_epi32(k: __mmask8, a: __m256i) -> __m256i {
389401
#[target_feature(enable = "avx512cd,avx512vl")]
390402
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
391403
#[cfg_attr(test, assert_instr(vplzcntd))]
392-
pub fn _mm_lzcnt_epi32(a: __m128i) -> __m128i {
404+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
405+
pub const fn _mm_lzcnt_epi32(a: __m128i) -> __m128i {
393406
unsafe { transmute(simd_ctlz(a.as_i32x4())) }
394407
}
395408

@@ -400,7 +413,8 @@ pub fn _mm_lzcnt_epi32(a: __m128i) -> __m128i {
400413
#[target_feature(enable = "avx512cd,avx512vl")]
401414
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
402415
#[cfg_attr(test, assert_instr(vplzcntd))]
403-
pub fn _mm_mask_lzcnt_epi32(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
416+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
417+
pub const fn _mm_mask_lzcnt_epi32(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
404418
unsafe {
405419
let zerocount = _mm_lzcnt_epi32(a).as_i32x4();
406420
transmute(simd_select_bitmask(k, zerocount, src.as_i32x4()))
@@ -414,7 +428,8 @@ pub fn _mm_mask_lzcnt_epi32(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
414428
#[target_feature(enable = "avx512cd,avx512vl")]
415429
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
416430
#[cfg_attr(test, assert_instr(vplzcntd))]
417-
pub fn _mm_maskz_lzcnt_epi32(k: __mmask8, a: __m128i) -> __m128i {
431+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
432+
pub const fn _mm_maskz_lzcnt_epi32(k: __mmask8, a: __m128i) -> __m128i {
418433
unsafe {
419434
let zerocount = _mm_lzcnt_epi32(a).as_i32x4();
420435
transmute(simd_select_bitmask(k, zerocount, i32x4::ZERO))
@@ -428,7 +443,8 @@ pub fn _mm_maskz_lzcnt_epi32(k: __mmask8, a: __m128i) -> __m128i {
428443
#[target_feature(enable = "avx512cd")]
429444
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
430445
#[cfg_attr(test, assert_instr(vplzcntq))]
431-
pub fn _mm512_lzcnt_epi64(a: __m512i) -> __m512i {
446+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
447+
pub const fn _mm512_lzcnt_epi64(a: __m512i) -> __m512i {
432448
unsafe { transmute(simd_ctlz(a.as_i64x8())) }
433449
}
434450

@@ -439,7 +455,8 @@ pub fn _mm512_lzcnt_epi64(a: __m512i) -> __m512i {
439455
#[target_feature(enable = "avx512cd")]
440456
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
441457
#[cfg_attr(test, assert_instr(vplzcntq))]
442-
pub fn _mm512_mask_lzcnt_epi64(src: __m512i, k: __mmask8, a: __m512i) -> __m512i {
458+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
459+
pub const fn _mm512_mask_lzcnt_epi64(src: __m512i, k: __mmask8, a: __m512i) -> __m512i {
443460
unsafe {
444461
let zerocount = _mm512_lzcnt_epi64(a).as_i64x8();
445462
transmute(simd_select_bitmask(k, zerocount, src.as_i64x8()))
@@ -453,7 +470,8 @@ pub fn _mm512_mask_lzcnt_epi64(src: __m512i, k: __mmask8, a: __m512i) -> __m512i
453470
#[target_feature(enable = "avx512cd")]
454471
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
455472
#[cfg_attr(test, assert_instr(vplzcntq))]
456-
pub fn _mm512_maskz_lzcnt_epi64(k: __mmask8, a: __m512i) -> __m512i {
473+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
474+
pub const fn _mm512_maskz_lzcnt_epi64(k: __mmask8, a: __m512i) -> __m512i {
457475
unsafe {
458476
let zerocount = _mm512_lzcnt_epi64(a).as_i64x8();
459477
transmute(simd_select_bitmask(k, zerocount, i64x8::ZERO))
@@ -467,7 +485,8 @@ pub fn _mm512_maskz_lzcnt_epi64(k: __mmask8, a: __m512i) -> __m512i {
467485
#[target_feature(enable = "avx512cd,avx512vl")]
468486
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
469487
#[cfg_attr(test, assert_instr(vplzcntq))]
470-
pub fn _mm256_lzcnt_epi64(a: __m256i) -> __m256i {
488+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
489+
pub const fn _mm256_lzcnt_epi64(a: __m256i) -> __m256i {
471490
unsafe { transmute(simd_ctlz(a.as_i64x4())) }
472491
}
473492

@@ -478,7 +497,8 @@ pub fn _mm256_lzcnt_epi64(a: __m256i) -> __m256i {
478497
#[target_feature(enable = "avx512cd,avx512vl")]
479498
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
480499
#[cfg_attr(test, assert_instr(vplzcntq))]
481-
pub fn _mm256_mask_lzcnt_epi64(src: __m256i, k: __mmask8, a: __m256i) -> __m256i {
500+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
501+
pub const fn _mm256_mask_lzcnt_epi64(src: __m256i, k: __mmask8, a: __m256i) -> __m256i {
482502
unsafe {
483503
let zerocount = _mm256_lzcnt_epi64(a).as_i64x4();
484504
transmute(simd_select_bitmask(k, zerocount, src.as_i64x4()))
@@ -492,7 +512,8 @@ pub fn _mm256_mask_lzcnt_epi64(src: __m256i, k: __mmask8, a: __m256i) -> __m256i
492512
#[target_feature(enable = "avx512cd,avx512vl")]
493513
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
494514
#[cfg_attr(test, assert_instr(vplzcntq))]
495-
pub fn _mm256_maskz_lzcnt_epi64(k: __mmask8, a: __m256i) -> __m256i {
515+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
516+
pub const fn _mm256_maskz_lzcnt_epi64(k: __mmask8, a: __m256i) -> __m256i {
496517
unsafe {
497518
let zerocount = _mm256_lzcnt_epi64(a).as_i64x4();
498519
transmute(simd_select_bitmask(k, zerocount, i64x4::ZERO))
@@ -506,7 +527,8 @@ pub fn _mm256_maskz_lzcnt_epi64(k: __mmask8, a: __m256i) -> __m256i {
506527
#[target_feature(enable = "avx512cd,avx512vl")]
507528
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
508529
#[cfg_attr(test, assert_instr(vplzcntq))]
509-
pub fn _mm_lzcnt_epi64(a: __m128i) -> __m128i {
530+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
531+
pub const fn _mm_lzcnt_epi64(a: __m128i) -> __m128i {
510532
unsafe { transmute(simd_ctlz(a.as_i64x2())) }
511533
}
512534

@@ -517,7 +539,8 @@ pub fn _mm_lzcnt_epi64(a: __m128i) -> __m128i {
517539
#[target_feature(enable = "avx512cd,avx512vl")]
518540
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
519541
#[cfg_attr(test, assert_instr(vplzcntq))]
520-
pub fn _mm_mask_lzcnt_epi64(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
542+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
543+
pub const fn _mm_mask_lzcnt_epi64(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
521544
unsafe {
522545
let zerocount = _mm_lzcnt_epi64(a).as_i64x2();
523546
transmute(simd_select_bitmask(k, zerocount, src.as_i64x2()))
@@ -531,7 +554,8 @@ pub fn _mm_mask_lzcnt_epi64(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
531554
#[target_feature(enable = "avx512cd,avx512vl")]
532555
#[stable(feature = "stdarch_x86_avx512", since = "1.89")]
533556
#[cfg_attr(test, assert_instr(vplzcntq))]
534-
pub fn _mm_maskz_lzcnt_epi64(k: __mmask8, a: __m128i) -> __m128i {
557+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
558+
pub const fn _mm_maskz_lzcnt_epi64(k: __mmask8, a: __m128i) -> __m128i {
535559
unsafe {
536560
let zerocount = _mm_lzcnt_epi64(a).as_i64x2();
537561
transmute(simd_select_bitmask(k, zerocount, i64x2::ZERO))

0 commit comments

Comments
 (0)