File tree 2 files changed +34
-0
lines changed
librustc_platform_intrinsics
2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change 142
142
"llvm" : " vpkpx" ,
143
143
"ret" : " s16" ,
144
144
"args" : [" s32" , " s32" ]
145
+ },
146
+ {
147
+ "intrinsic" : " unpackl{1.kind}{1.data_type_short}" ,
148
+ "width" : [128 ],
149
+ "llvm" : " vupkl{1.kind}{1.data_type_short}" ,
150
+ "ret" : " s(16-32)" ,
151
+ "args" : [" 0N" ]
152
+ },
153
+ {
154
+ "intrinsic" : " unpackh{1.kind}{1.data_type_short}" ,
155
+ "width" : [128 ],
156
+ "llvm" : " vupkh{1.kind}{1.data_type_short}" ,
157
+ "ret" : " s(16-32)" ,
158
+ "args" : [" 0N" ]
145
159
}
146
160
]
147
161
}
Original file line number Diff line number Diff line change @@ -317,6 +317,26 @@ pub fn find(name: &str) -> Option<Intrinsic> {
317
317
output : & :: I16x8 ,
318
318
definition : Named ( "llvm.ppc.altivec.vpkpx" )
319
319
} ,
320
+ "_vec_unpacklsb" => Intrinsic {
321
+ inputs : { static INPUTS : [ & ' static Type ; 1 ] = [ & :: I8x16 ] ; & INPUTS } ,
322
+ output : & :: I16x8 ,
323
+ definition : Named ( "llvm.ppc.altivec.vupklsb" )
324
+ } ,
325
+ "_vec_unpacklsh" => Intrinsic {
326
+ inputs : { static INPUTS : [ & ' static Type ; 1 ] = [ & :: I16x8 ] ; & INPUTS } ,
327
+ output : & :: I32x4 ,
328
+ definition : Named ( "llvm.ppc.altivec.vupklsh" )
329
+ } ,
330
+ "_vec_unpackhsb" => Intrinsic {
331
+ inputs : { static INPUTS : [ & ' static Type ; 1 ] = [ & :: I8x16 ] ; & INPUTS } ,
332
+ output : & :: I16x8 ,
333
+ definition : Named ( "llvm.ppc.altivec.vupkhsb" )
334
+ } ,
335
+ "_vec_unpackhsh" => Intrinsic {
336
+ inputs : { static INPUTS : [ & ' static Type ; 1 ] = [ & :: I16x8 ] ; & INPUTS } ,
337
+ output : & :: I32x4 ,
338
+ definition : Named ( "llvm.ppc.altivec.vupkhsh" )
339
+ } ,
320
340
_ => return None ,
321
341
} )
322
342
}
You can’t perform that action at this time.
0 commit comments