ac/llvm: add better code for fsign
[mesa.git] / src / amd / llvm / ac_llvm_util.h
index db745f9a5d406379d990b9ca3079ba2d6a0d1d4c..d44d4deab87e37b6a977f072e5eaf5edd01801b3 100644 (file)
 extern "C" {
 #endif
 
-#if LLVM_VERSION_MAJOR < 11
-#define LLVMFixedVectorTypeKind LLVMVectorTypeKind
-#endif
-
 struct ac_compiler_passes;
+struct ac_llvm_context;
 
 enum ac_func_attr {
        AC_FUNC_ATTR_ALWAYSINLINE = (1 << 0),
@@ -68,8 +65,7 @@ enum ac_target_machine_options {
        AC_TM_CHECK_IR = (1 << 4),
        AC_TM_ENABLE_GLOBAL_ISEL = (1 << 5),
        AC_TM_CREATE_LOW_OPT = (1 << 6),
-       AC_TM_NO_LOAD_STORE_OPT = (1 << 7),
-       AC_TM_WAVE32 = (1 << 8),
+       AC_TM_WAVE32 = (1 << 7),
 };
 
 enum ac_float_mode {
@@ -100,6 +96,7 @@ struct ac_llvm_compiler {
 
 const char *ac_get_llvm_processor_name(enum radeon_family family);
 void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes);
+void ac_add_attr_alignment(LLVMValueRef val, uint64_t bytes);
 bool ac_is_sgpr_param(LLVMValueRef param);
 void ac_add_function_attr(LLVMContextRef ctx, LLVMValueRef function,
                           int attr_idx, enum ac_func_attr attr);
@@ -113,8 +110,8 @@ LLVMModuleRef ac_create_module(LLVMTargetMachineRef tm, LLVMContextRef ctx);
 
 LLVMBuilderRef ac_create_builder(LLVMContextRef ctx,
                                 enum ac_float_mode float_mode);
-bool ac_disable_inexact_math(LLVMBuilderRef builder);
-void ac_restore_inexact_math(LLVMBuilderRef builder, bool value);
+void ac_enable_signed_zeros(struct ac_llvm_context *ctx);
+void ac_disable_signed_zeros(struct ac_llvm_context *ctx);
 
 void
 ac_llvm_add_target_dep_function_attr(LLVMValueRef F,
@@ -135,6 +132,7 @@ ac_count_scratch_private_memory(LLVMValueRef function);
 
 LLVMTargetLibraryInfoRef ac_create_target_library_info(const char *triple);
 void ac_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info);
+void ac_init_shared_llvm_once(void); /* Do not use directly, use ac_init_llvm_once */
 void ac_init_llvm_once(void);