@@ -36,6 +36,30 @@ pub fn find<'tcx>(_tcx: &ty::ctxt<'tcx>, name: &str) -> Option<Intrinsic> {
36
36
"mm_min_pd" => p ! ( "sse2.min.pd" , ( f64x2, f64x2) -> f64x2) ,
37
37
38
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
+
39
63
_ => return None
40
64
} )
41
65
}
0 commit comments