#ifndef LP_BLD_LOGIC_H
#define LP_BLD_LOGIC_H
+#ifdef __cplusplus
+extern "C" {
+#endif
-#include "os/os_llvm.h"
+#include "gallivm/lp_bld.h"
#include "pipe/p_defines.h" /* For PIPE_FUNC_xxx */
LLVMValueRef
-lp_build_compare(LLVMBuilderRef builder,
+lp_build_compare(struct gallivm_state *gallivm,
const struct lp_type type,
unsigned func,
LLVMValueRef a,
LLVMValueRef a,
LLVMValueRef b);
+LLVMValueRef
+lp_build_cmp_ordered(struct lp_build_context *bld,
+ unsigned func,
+ LLVMValueRef a,
+ LLVMValueRef b);
+
+LLVMValueRef
+lp_build_select_bitwise(struct lp_build_context *bld,
+ LLVMValueRef mask,
+ LLVMValueRef a,
+ LLVMValueRef b);
LLVMValueRef
lp_build_select(struct lp_build_context *bld,
LLVMValueRef
lp_build_select_aos(struct lp_build_context *bld,
+ unsigned mask,
LLVMValueRef a,
LLVMValueRef b,
- const boolean cond[4]);
+ unsigned num_channels);
+
LLVMValueRef
-lp_build_alloca(struct lp_build_context *bld);
+lp_build_any_true_range(struct lp_build_context *bld,
+ unsigned real_length,
+ LLVMValueRef val);
+
+#ifdef __cplusplus
+}
+#endif
#endif /* !LP_BLD_LOGIC_H */