radeonsi: don't lower indirect IO in GLSL
[mesa.git] / src / gallium / auxiliary / gallivm / lp_bld_logic.h
index b54ec13b7018fd8600655722bd8daf56a2e6ff1d..b8bbfb2bf13401c965e829ae32cb6ae981d7766e 100644 (file)
 #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 */
 
@@ -47,7 +50,7 @@ struct lp_build_context;
 
 
 LLVMValueRef
-lp_build_compare(LLVMBuilderRef builder,
+lp_build_compare(struct gallivm_state *gallivm,
                  const struct lp_type type,
                  unsigned func,
                  LLVMValueRef a,
@@ -63,6 +66,17 @@ lp_build_cmp(struct lp_build_context *bld,
              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,
@@ -72,11 +86,19 @@ 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 */