From 0d6a7088dc82cfe686beb5ebfe540ba2b7935cd6 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Sun, 1 Nov 2020 19:51:42 +0100 Subject: stage1: Implement Add/Mul reduction operators --- src/zig_llvm.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/zig_llvm.cpp') diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index ac45932e0a..1a81cf33ef 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -1156,6 +1156,22 @@ LLVMValueRef ZigLLVMBuildFPMinReduce(LLVMBuilderRef B, LLVMValueRef Val) { return wrap(unwrap(B)->CreateFPMinReduce(unwrap(Val))); } +LLVMValueRef ZigLLVMBuildAddReduce(LLVMBuilderRef B, LLVMValueRef Val) { + return wrap(unwrap(B)->CreateAddReduce(unwrap(Val))); +} + +LLVMValueRef ZigLLVMBuildMulReduce(LLVMBuilderRef B, LLVMValueRef Val) { + return wrap(unwrap(B)->CreateMulReduce(unwrap(Val))); +} + +LLVMValueRef ZigLLVMBuildFPAddReduce(LLVMBuilderRef B, LLVMValueRef Acc, LLVMValueRef Val) { + return wrap(unwrap(B)->CreateFAddReduce(unwrap(Acc), unwrap(Val))); +} + +LLVMValueRef ZigLLVMBuildFPMulReduce(LLVMBuilderRef B, LLVMValueRef Acc, LLVMValueRef Val) { + return wrap(unwrap(B)->CreateFMulReduce(unwrap(Acc), unwrap(Val))); +} + static_assert((Triple::ArchType)ZigLLVM_UnknownArch == Triple::UnknownArch, ""); static_assert((Triple::ArchType)ZigLLVM_arm == Triple::arm, ""); static_assert((Triple::ArchType)ZigLLVM_armeb == Triple::armeb, ""); -- cgit v1.2.3