Implement bitop intrinsics in new LLVM IR builder

* llvm.bitreverse
* llvm.bswap
* llvm.ctpop
* llvm.ctlz
* llvm.cttz
This commit is contained in:
antlilja
2023-08-06 00:58:10 +02:00
parent 2b4ac7c6b3
commit 86f61a9d26
4 changed files with 87 additions and 0 deletions

View File

@@ -1065,6 +1065,21 @@ pub const Builder = opaque {
pub const buildFTrunc = ZigLLVMBuildFTrunc;
extern fn ZigLLVMBuildFTrunc(builder: *Builder, V: *Value, name: [*:0]const u8) *Value;
pub const buildBitReverse = ZigLLVMBuildBitReverse;
extern fn ZigLLVMBuildBitReverse(builder: *Builder, V: *Value, name: [*:0]const u8) *Value;
pub const buildBSwap = ZigLLVMBuildBSwap;
extern fn ZigLLVMBuildBSwap(builder: *Builder, V: *Value, name: [*:0]const u8) *Value;
pub const buildCTPop = ZigLLVMBuildCTPop;
extern fn ZigLLVMBuildCTPop(builder: *Builder, V: *Value, name: [*:0]const u8) *Value;
pub const buildCTLZ = ZigLLVMBuildCTLZ;
extern fn ZigLLVMBuildCTLZ(builder: *Builder, LHS: *Value, RHS: *Value, name: [*:0]const u8) *Value;
pub const buildCTTZ = ZigLLVMBuildCTTZ;
extern fn ZigLLVMBuildCTTZ(builder: *Builder, LHS: *Value, RHS: *Value, name: [*:0]const u8) *Value;
pub const buildFMA = ZigLLVMBuildFMA;
extern fn ZigLLVMBuildFMA(builder: *Builder, a: *Value, b: *Value, c: *Value, name: [*:0]const u8) *Value;