Hi ISPC developers and everyone,
First, thanks to ispc developers for releasing an open source version of Intel's SIMD compiler!
I recently started playing around with ispc. I am trying to extend an llvm transformation pass
kulfi so that it could work on llvm-ir generated by ispc.
While looking at the llvm-ir code emitted for some of the example ispc codes, I noticed there are some llvm intrinsic definitions. I am listing some of them below:
declare <8 x float> @llvm.x86.avx.max.ps.256(<8 x float>, <8 x float>) nounwind readnone
declare <8 x float> @llvm.x86.avx.min.ps.256(<8 x float>, <8 x float>) nounwind readnone
declare i32 @llvm.x86.avx.movmsk.ps.256(<8 x float>) nounwind readnone
declare void @llvm.x86.avx.maskstore.ps.256(i8*, <8 x float>, <8 x float>) nounwind
declare <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float>, <8 x float>, <8 x float>) nounwind readnone
I have following questions:
1. Where can I find the complete list of llvm intrinsics implemented for ispc?
2. Also, where can I find the table entries and code generation rules for these intrinsics?
Sorry if these are repeat questions and thanks in advance!!
Vishal