File tree Expand file tree Collapse file tree 2 files changed +28
-2
lines changed
librustc_platform_intrinsics Expand file tree Collapse file tree 2 files changed +28
-2
lines changed Original file line number Diff line number Diff line change 3
3
"intrinsic_prefix" : " _vec_" ,
4
4
"llvm_prefix" : " llvm.ppc.altivec." ,
5
5
"number_info" : {
6
- "unsigned" : {},
7
- "signed" : {},
6
+ "unsigned" : {
7
+ "data_type_short" : { "8" : " b" , "16" : " h" , "32" : " w" , "64" : " d" }
8
+ },
9
+ "signed" : {
10
+ "data_type_short" : { "8" : " b" , "16" : " h" , "32" : " w" , "64" : " d" }
11
+ },
8
12
"float" : {}
9
13
},
10
14
"width_info" : {
31
35
"llvm" : " vcmpbfp" ,
32
36
"ret" : " s32" ,
33
37
"args" : [" f32" , " f32" ]
38
+ },
39
+ {
40
+ "intrinsic" : " cmpeq{0.data_type_short}" ,
41
+ "width" : [128 ],
42
+ "llvm" : " vcmpequ{0.data_type_short}" ,
43
+ "ret" : " s(8-32)" ,
44
+ "args" : [" 0" , " 0" ]
34
45
}
35
46
]
36
47
}
Original file line number Diff line number Diff line change @@ -37,6 +37,21 @@ pub fn find(name: &str) -> Option<Intrinsic> {
37
37
output : & :: I32x4 ,
38
38
definition : Named ( "llvm.ppc.altivec.vcmpbfp" )
39
39
} ,
40
+ "_vec_cmpeqb" => Intrinsic {
41
+ inputs : { static INPUTS : [ & ' static Type ; 2 ] = [ & :: I8x16 , & :: I8x16 ] ; & INPUTS } ,
42
+ output : & :: I8x16 ,
43
+ definition : Named ( "llvm.ppc.altivec.vcmpequb" )
44
+ } ,
45
+ "_vec_cmpeqh" => Intrinsic {
46
+ inputs : { static INPUTS : [ & ' static Type ; 2 ] = [ & :: I16x8 , & :: I16x8 ] ; & INPUTS } ,
47
+ output : & :: I16x8 ,
48
+ definition : Named ( "llvm.ppc.altivec.vcmpequh" )
49
+ } ,
50
+ "_vec_cmpeqw" => Intrinsic {
51
+ inputs : { static INPUTS : [ & ' static Type ; 2 ] = [ & :: I32x4 , & :: I32x4 ] ; & INPUTS } ,
52
+ output : & :: I32x4 ,
53
+ definition : Named ( "llvm.ppc.altivec.vcmpequw" )
54
+ } ,
40
55
_ => return None ,
41
56
} )
42
57
}
You can’t perform that action at this time.
0 commit comments