Skip to content

Commit 1bfa0b2

Browse files
committed
---
yaml --- r: 233471 b: refs/heads/beta c: 907bbac h: refs/heads/master i: 233469: 62d7c0a 233467: 6ec71be 233463: 1fb1e26 233455: f6ce0c7 233439: 528b057 233407: c42a57f 233343: 7e1e137 233215: 79fac3c 232959: 3719617 232447: 30ffd9d 231423: 8b5b58e 229375: 1543e46 v: v3
1 parent 66110aa commit 1bfa0b2

File tree

2 files changed

+41
-43
lines changed

2 files changed

+41
-43
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: e61f5397dbb1c0b7e007eb3a09161c590deda336
26+
refs/heads/beta: 907bbac40fe22113bdf19023f1831faada7b7ec0
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/src/librustc_platform_intrinsics/x86.rs

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -18,48 +18,46 @@ macro_rules! p {
1818
}
1919

2020
pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
21-
Some(match name {
22-
"mm_movemask_ps" => p!("sse.movmsk.ps", (f32x4) -> i32),
23-
"mm_movemask_pd" => p!("sse2.movmsk.pd", (f64x2) -> i32),
24-
"mm_movemask_epi8" => p!("sse2.pmovmskb.128", (i8x16) -> i32),
25-
26-
"mm_rsqrt_ps" => p!("sse.rsqrt.ps", (f32x4) -> f32x4),
27-
"mm_rcp_ps" => p!("sse.rcp.ps", (f32x4) -> f32x4),
28-
29-
"mm_sqrt_ps" => plain!("llvm.sqrt.v4f32", (f32x4) -> f32x4),
30-
"mm_sqrt_pd" => plain!("llvm.sqrt.v2f64", (f64x2) -> f64x2),
31-
32-
"mm_max_ps" => p!("sse.max.ps", (f32x4, f32x4) -> f32x4),
33-
"mm_max_pd" => p!("sse2.max.pd", (f64x2, f64x2) -> f64x2),
34-
35-
"mm_min_ps" => p!("sse.min.ps", (f32x4, f32x4) -> f32x4),
36-
"mm_min_pd" => p!("sse2.min.pd", (f64x2, f64x2) -> f64x2),
37-
38-
"mm_shuffle_epi8" => p!("ssse3.pshuf.b.128", (i8x16, i8x16) -> i8x16),
39-
40-
"mm_adds_epi16" => p!("sse2.padds.w", (i16x8, i16x8) -> i16x8),
41-
"mm_adds_epi8" => p!("sse2.padds.b", (i8x16, i8x16) -> i8x16),
42-
"mm_adds_epu16" => p!("sse2.paddus.w", (i16x8, i16x8) -> i16x8),
43-
"mm_adds_epu8" => p!("sse2.paddus.b", (i8x16, i8x16) -> i8x16),
44-
"mm_avg_epu16" => p!("sse2.pavg.w", (i16x8, i16x8) -> i16x8),
45-
"mm_avg_epu8" => p!("sse2.pavg.b", (i8x16, i8x16) -> i8x16),
46-
"mm_madd_epi16" => p!("sse2.pmadd.wd", (i16x8, i16x8) -> i32x4),
47-
"mm_max_epi16" => p!("sse2.pmaxs.w", (i16x8, i16x8) -> i16x8),
48-
"mm_max_epu8" => p!("sse2.pmaxu.b", (i8x16, i8x16) -> i8x16),
49-
"mm_min_epi16" => p!("sse2.pmins.w", (i16x8, i16x8) -> i16x8),
50-
"mm_min_epu8" => p!("sse2.pminu.b", (i8x16, i8x16) -> i8x16),
51-
"mm_mul_epu32" => p!("sse2.pmulu.dq", (i32x4, i32x4) -> i64x2),
52-
"mm_mulhi_epi16" => p!("sse2.pmulh.w", (i8x16, i8x16) -> i8x16),
53-
"mm_mulhi_epu16" => p!("sse2.pmulhu.w", (i8x16, i8x16) -> i8x16),
54-
"mm_packs_epi16" => p!("sse2.packsswb.128", (i16x8, i16x8) -> i8x16),
55-
"mm_packs_epi32" => p!("sse2.packssdw.128", (i32x4, i32x4) -> i16x8),
56-
"mm_packus_epi16" => p!("sse2.packuswb.128", (i16x8, i16x8) -> i8x16),
57-
"mm_sad_epu8" => p!("sse2.psad.bw", (i8x16, i8x16) -> i64x2),
58-
"mm_subs_epi16" => p!("sse2.psubs.w", (i16x8, i16x8) -> i16x8),
59-
"mm_subs_epi8" => p!("sse2.psubs.b", (i8x16, i8x16) -> i8x16),
60-
"mm_subs_epu16" => p!("sse2.psubus.w", (i16x8, i16x8) -> i16x8),
61-
"mm_subs_epu8" => p!("sse2.psubus.b", (i8x16, i8x16) -> i8x16),
62-
21+
if !name.starts_with("mm_") { return None }
22+
23+
Some(match &name["mm_".len()..] {
24+
"sqrt_ps" => plain!("llvm.sqrt.v4f32", (f32x4) -> f32x4),
25+
"sqrt_pd" => plain!("llvm.sqrt.v2f64", (f64x2) -> f64x2),
26+
27+
"movemask_ps" => p!("sse.movmsk.ps", (f32x4) -> i32),
28+
"max_ps" => p!("sse.max.ps", (f32x4, f32x4) -> f32x4),
29+
"min_ps" => p!("sse.min.ps", (f32x4, f32x4) -> f32x4),
30+
"rsqrt_ps" => p!("sse.rsqrt.ps", (f32x4) -> f32x4),
31+
"rcp_ps" => p!("sse.rcp.ps", (f32x4) -> f32x4),
32+
33+
"adds_epi16" => p!("sse2.padds.w", (i16x8, i16x8) -> i16x8),
34+
"adds_epi8" => p!("sse2.padds.b", (i8x16, i8x16) -> i8x16),
35+
"adds_epu16" => p!("sse2.paddus.w", (i16x8, i16x8) -> i16x8),
36+
"adds_epu8" => p!("sse2.paddus.b", (i8x16, i8x16) -> i8x16),
37+
"avg_epu16" => p!("sse2.pavg.w", (i16x8, i16x8) -> i16x8),
38+
"avg_epu8" => p!("sse2.pavg.b", (i8x16, i8x16) -> i8x16),
39+
"madd_epi16" => p!("sse2.pmadd.wd", (i16x8, i16x8) -> i32x4),
40+
"max_epi16" => p!("sse2.pmaxs.w", (i16x8, i16x8) -> i16x8),
41+
"max_epu8" => p!("sse2.pmaxu.b", (i8x16, i8x16) -> i8x16),
42+
"max_pd" => p!("sse2.max.pd", (f64x2, f64x2) -> f64x2),
43+
"min_epi16" => p!("sse2.pmins.w", (i16x8, i16x8) -> i16x8),
44+
"min_epu8" => p!("sse2.pminu.b", (i8x16, i8x16) -> i8x16),
45+
"min_pd" => p!("sse2.min.pd", (f64x2, f64x2) -> f64x2),
46+
"movemask_pd" => p!("sse2.movmsk.pd", (f64x2) -> i32),
47+
"movemask_epi8" => p!("sse2.pmovmskb.128", (i8x16) -> i32),
48+
"mul_epu32" => p!("sse2.pmulu.dq", (i32x4, i32x4) -> i64x2),
49+
"mulhi_epi16" => p!("sse2.pmulh.w", (i8x16, i8x16) -> i8x16),
50+
"mulhi_epu16" => p!("sse2.pmulhu.w", (i8x16, i8x16) -> i8x16),
51+
"packs_epi16" => p!("sse2.packsswb.128", (i16x8, i16x8) -> i8x16),
52+
"packs_epi32" => p!("sse2.packssdw.128", (i32x4, i32x4) -> i16x8),
53+
"packus_epi16" => p!("sse2.packuswb.128", (i16x8, i16x8) -> i8x16),
54+
"sad_epu8" => p!("sse2.psad.bw", (i8x16, i8x16) -> i64x2),
55+
"subs_epi16" => p!("sse2.psubs.w", (i16x8, i16x8) -> i16x8),
56+
"subs_epi8" => p!("sse2.psubs.b", (i8x16, i8x16) -> i8x16),
57+
"subs_epu16" => p!("sse2.psubus.w", (i16x8, i16x8) -> i16x8),
58+
"subs_epu8" => p!("sse2.psubus.b", (i8x16, i8x16) -> i8x16),
59+
60+
"shuffle_epi8" => p!("ssse3.pshuf.b.128", (i8x16, i8x16) -> i8x16),
6361
_ => return None
6462
})
6563
}

0 commit comments

Comments
 (0)